Perl
- Tidy [perl]
perl のフォーマッタ。
perltidy -st -se
で標準入力、ファイル引数から標準出力へのフィルタとして働く。
@a=qw/1 0 1 1 0 0 0/; sub f($$) {($n,$p)=@_; return 1 if($n==$#a&&$a[$n]==0&&$p==0); return 0 if($n==$#a); \ if($a[$n]==0){ if($p>0){f($n+1,$p-1)}else{$n==$#a} } else{ f($n+1,$p+1) }}\ print f(0,0)?'true':'false';
↓
@a = qw/1 0 1 1 0 0 0/; sub f($$) { ( $n, $p ) = @_; return 1 if ( $n <strike> $#a && $a[$n] </strike> 0 && $p == 0 ); return 0 if ( $n == $#a ); if ( $a[$n] == 0 ) { if ( $p > 0 ) { f( $n + 1, $p - 1 ) } else { $n == $#a } } else { f( $n + 1, $p + 1 ) } } print f( 0, 0 ) ? 'true ' : 'false';
# h = 0 | 1 h h という構文(hは非終端記号)で定義される言語の判定器
# strict な末尾再帰による実装
# 動いてるのかこれ。