2

ハードコードされた 2 桁の 10 進数 (.37 など) の最初の 9 乗をそれぞれ独自の行に出力する最短の Perl ワンライナーは何ですか?

出力は次のようになります。

1
0.37
0.1369
[etc.]

公式パールゴルフルール:

  1. (キー)ストロークの最小数が勝ちます
  2. ストローク数にはコマンドラインが含まれます
4

8 に答える 8

15

With perl 5.10.0 and above:

perl -E'say 0.37**$_ for 0..8'

With older perls you don't have say and -E, but this works:

perl -le'print 0.37**$_ for 0..8'

Update: the first solution is made of 30 key strokes. Removing the first 0 gives 29. Another space can be saved, so my final solution is this with 28 strokes:

perl -E'say.37**$_ for 0..8'
于 2008-10-16T20:24:20.380 に答える
6
perl -le'map{print.37**$_}0..8'

31 文字 - 「say」を使用して明らかな改善を試す 5.10 は持っていませんが、これは 28 文字です。

perl -E'map{say.37**$_}0..8'
于 2008-10-16T22:04:20.023 に答える
4
seq 9|perl -nE'say.37**$_'

26 - はい、それは不正行為です。(そして、はい、私は 1 から 9 までの累乗を行っています。0 から 8 はばかげています。)

于 2008-10-17T06:23:17.380 に答える
3

Perl 6 での楽しみのために:

  1. 28 文字:

    perl6 -e'.say for .37»**»^9'
    
  2. 27文字:

    perl6 -e'say .37**$_ for^9'
    

(少なくとも現在の空白の規則に基づいています。)

于 2008-10-18T17:50:28.330 に答える
2
perl -e 'print .37**$_,"\n" for 0..9'

If you add -l to options you can skip the ,"\n" part

于 2008-10-16T20:26:34.870 に答える
1
print.37**$_.$/for 0..8

提出前にプログラムを切り刻んだ場合は 23 ストローク。:-P

于 2008-10-16T21:08:01.603 に答える
1
print join("\n", map { 0.37**$_ } (0..9));
于 2008-10-16T20:22:40.960 に答える
0
perl -e "for(my $i = 1; $i < 10; $i++){ print((.37**$i). \"\n\"); }"

早速エントリーです。:)

改行固定!

于 2008-10-16T20:14:36.063 に答える