2008-10-16 2 views
2

Что представляет собой самый короткий однострочный слой Perl, который печатает первые 9 степеней жестко закодированного 2-значного десятичного числа (скажем, например .37), каждый на своей собственной линии?Perl golf: напечатать полномочия номера

Вывод будет выглядеть примерно так:

1 
0.37 
0.1369 
[etc.] 

Официальный Perl правила гольфа:

  1. Наименьшее число (ключ) инсульты побед
  2. Ваш подсчет хода включает в себя командную строку
+1

Вам не обязательно играть, если вы не хотите, чтобы – 2008-10-16 20:35:17

+0

Хороший способ заставить людей преодолеть страх перед perl в качестве языка только для записи :-P – Tanktalus 2008-10-16 20:51:28

+0

Похоже, что есть два с 28 штрихами, оба требующий «Perl 5.10». – 2008-10-16 23:06:27

ответ

15

С Perl 5.10.0 и выше:

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

С старых Перлз вы не имеете say и -E, но это работает:

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

ОБНОВЛЕНИЕ: первый решение выполнено из 30 ключевых штрихов. Удаление первого 0 дает 29. Еще одно пространство может быть сохранено, поэтому мое окончательное решение это с 28 ударов:

perl -E'say.37**$_ for 0..8' 
0
perl -e "for(my $i = 1; $i < 10; $i++){ print((.37**$i). \"\n\"); }" 

Просто быстрый вход. :)

Исправлено прерывание линии!

2
perl -e 'print .37**$_,"\n" for 0..9' 

Если добавить -l в опции вы можете пропустить, «\ п» часть

1
print.37**$_.$/for 0..8 

23 удара, если вы нарезаете программу перед отправкой. :-P

6
perl -le'map{print.37**$_}0..8' 

31 символов - я не имею 5,10 попробовать очевидное улучшение использования "говорят", но это 28:

perl -E'map{say.37**$_}0..8' 
4
seq 9|perl -nE'say.37**$_' 

26 - Да, это обман , (И да, я делаю полномочия от 1 до 9. 0 до 8 просто глупо.)

3

Просто для удовольствия в Perl   6:

  1. 28 символов:

    perl6 -e'.say for .37»**»^9' 
    
  2. 27 символов:

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

(По крайней мере, основываясь на текущих правилах пробелов.)

Смежные вопросы