Распечатать алфавит без использования каждой гласной

72

Вдохновение : в 1939 году человек по имени Эрнест Винсент Райт написал роман под названием Гэдсби, не используя букву «е».

Ваша задача - написать набор (до 5) программ на любом языке (который имеет текстовый синтаксис *), чтобы вывести все 26 букв алфавита по порядку. Однако для каждой гласной aeiou, по крайней мере, одна из программ не должна включать какое-либо появление гласной.

Так должно быть

  • программа, которая не использует « a » или « A » где-либо в синтаксисе программы.
  • программа, которая не использует « e » или « E » где-либо в синтаксисе программы.
  • программа, которая не использует « i » или « I » где-либо в синтаксисе программы.
  • программа, которая не использует ' o ' или ' O ' где-либо в синтаксисе программы.
  • программа, которая не использует ' u ' или ' U ' где-либо в синтаксисе программы.

Все они должны выводить abcdefghijklmnopqrstuvwxyz.

Победителем будет решение, при котором длина всех программ самая короткая.

* так как ограничение не будет большой проблемой в Piet или Whitespace


Текущий рейтинг (06 марта 2014):

shamp00
источник
4
@ w0lf: Нет, там написано «до 5 программ» и «длина всех программ», которые я прочитал как «может быть только одна программа, и в этом случае ее длина считается».
Schnaader
9
@PeterTaylor: Вы не думаете, что необходимость избегать использования гласных в вашем синтаксисе является уникальной проблемой? Как программист JS это особенно интересно :)
mellamokb
2
Допустимы ли новые строки в выходных данных (т. Е. По одному на символ)? Я могу сократить часть своего кода, если это так ...
Gaffi
2
Допускается ли вывод в верхнем регистре?
Эрик Outgolfer
2
Я ОП. Прописные буквы не допускаются.
shamp00

Ответы:

48

Golfscript - 8 символов

123,97>+
gnibbler
источник
8
блин, действительно не могу разбить Golfscript с точки зрения краткости ...
Патрик Осци
18
При этом читаемость воняет как сумасшедшая.
Эндрю Грей,
5
Это не так уж и плохо;) сгенерировать список из 123 чисел, удалить тех, кто не превышает 97, привести его (массив чисел) к строке.
Маккей,
3
Используйте 91,65>+вместо этого.
Эрик Outgolfer
31

Brainfuck, 38 символов

++++++[->++++<]>[->+>++++<<]>++[->+.<]

Конечно, в синтаксисе brainfuck нет гласных (или любых других букв) .

Илмари Каронен
источник
2
Действительная точка там! ;)
WallyWest
3
30 байтов:++[[<+++>->++++<]>]<<<<++[->+.<]
прим
23

PHP, 31 байт

Нет, я, я, я

<?=~žœ›š™˜—–•”“’‘ŽŒ‹Š‰ˆ‡†…;

Двоичная строка после тильды имеет следующее шестнадцатеричное представление:

\x9e\x9d\x9c\x9b\x9a\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90\x8f\x8e\x8d\x8c\x8b\x8a\x89\x88\x87\x86\x85

Так как есть языковое табло, я также могу представить это:

Ruby (v1.8) 18 байт

$><<[*97.chr..'z']
Примо
источник
Я не уверен, что понимаю, как это работает. Могу ли я получить объяснение?
Мистер Лама
При применении к строке оператор ~ инвертирует все биты. Здесь я перевернул abc ... xyz. Поскольку в двоичной строке нет символов символов (или пробелов), кавычки также не нужны.
Прим
1
Вы можете указать кодировку для того, что у вас там есть.
Джои
1
ISO-8859-1. Три «непечатных» символа были удалены, когда он был опубликован, поэтому я включил гекс.
Прим
2
Хорошая и, вероятно, самая короткая версия PHP. Команда для создания файла: php -r 'echo("<?=~\x9e\x9d\x9c\x9b\x9a\x99\x98\x97\x96\x95\x94\x93\x92\x91\x90\x8f\x8e\x8d\x8c\x8b\x8a\x89\x88\x87\x86\x85;");' > script.php. Команда , чтобы запустить его: php -d error_reporting=0 script.php; echo.
Axiac
16

Рубин ( 24 22)

Изменить: круглые скобки могут быть опущены, 2 символа меньше:

$><<'%c'*26%[*97..122]

24 символа в рубине:

$><<('%c'*26)%[*97..122]

Как это устроено

$>псевдоним для $stdoutили STDOUT. Вы можете написать в него с помощью <<оператора. Термин '%c'*26повторяет строку '%c'26 раз. %Оператор определяется на строку в качестве псевдонима sprintf, так str % valэквивалентно записи sprintf(str,val). Символ формата %cиспользуется для преобразования значения символа в символ. Эти значения происходят из [*97..122]которого создает массив, содержащий значения от 97 до 122. Et voilá!

Патрик Осцити
источник
Очень хорошо. Я искал способ использовать, <<но забыл о $>.
Марк Рид
1
Я даже не знал об этом $>раньше, но я догадывался, что должен быть какой-то псевдоним с переменной долларом, о $stdoutкотором никто не помнит :)
Patrick Oscity
21 персонаж: $><<[*"`".."z"][1,26](примечание: это работает только в Ruby 1.8)
Ventero
@Ventero работает не только в Ruby 1.8, но и в Ruby 1.9.2. Но использование p [*"".." z "] [1,26]` еще короче.
Хаулет
@Hauleth: Нет, запуск в 1.9 не приводит к правильному выводу, так как в 1.9 Array#to_sэто то же самое, что Array#inspectи в 1.8 Array#join- так что в 1.9 вывод ["a", "b", "c", "d", "e", ...]вместо abcdef.... По той же причине pне может использоваться (он вызывает inspectсвои аргументы вместо to_s).
Вентеро
16

Pyth , 1 персонаж

G

Pyth предопределяет определенные переменные. G предопределен как строчный алфавит. Pyth также неявно печатает каждую строку с разумным возвращаемым значением.

isaacg
источник
3
Ninja'd меня на 3 года ...
Стэн Струм
15

JavaScript (100)

Нет 'Aeou':

this['\x61l\x65rt']('\x61bcd\x65fghijklmn\x6fpqrst\x75vwxyz')

Нет «я»:

alert('abcdefgh\x69jklmnopqrstuvwxyz')
zzzzBov
источник
+1 Хорошее улучшение моего ответа :) Я думал об использовании \x##кодов, но не был уверен, что они действительны в JavaScript.
mellamokb
почему оповещения вообще? на терминале js объекты отображаются автоматически. ('\ x61bcd \ x65fghijklmn \ x6fpqrst \ x75vwxyz') @ 42 символа.
antony.trupe
3
@ antony.trupe, для кода гольфа ввод-вывод обычно осуществляется через встроенные в язык механизмы ввода-вывода (или общие плагины). Для JS это , как правило alert, confirm, prompt, console.log, и document.write. Простое объявление строкового литерала не приводит к его выводу при выполнении. В противном случае вы были бы правы, и я бы этим воспользовался.
zzzzBov
он выводит (по определению, которое я использую в любом случае) в консоли Google Chrome, но я допускаю проблему; это произвольное ограничение для начала.
antony.trupe
@ antony.trupe, на таком языке, как PHP, вы могли бы избежать использования литерала, потому что именно так он выполняет ввод-вывод.
zzzzBov
15

К, 9

_26#.Q.b6

К, 10

"c"$97+!26

К, 14

.:".Q.","c"$97
tmartin
источник
2
и глупый способ сделать это без букв вообще (12 символов):(@$`)$97+!26
Аарон Дэвис
1
Путь K5 - это почти ваше второе решение, но он $принимает символы вместо строк для управления типом, преобразованным в: `c $ 97 +! 26
JohnE
15

J, 26 23 17 16 символов

Через час или около того рыться в нижнем белье ящик Джея я , наконец , нашел способ устранить a.и u:глаголы.

2(3!:4)96+#\26$1

Ранее:

a.{~96++/\26$1
u:97+i.26

с благодарностью Рандере за #\трюк.

Gareth
источник
Отличное решение! Удалось сократить с 1 символом, используя #\ вместо +/\ .
Рандомра
5
Вылезай из ящика с нижним бельем
Джо,
14

R, 17 + 19 = 36 символов

нет ае (17):

intToUtf8(97:122)

нет я (19):

cat(letters,sep="")
Paolo
источник
12

Баш (38)

Нет гласных вообще.

/*/*/*ntf "/*/?ch? {\x61..z}"|/*/b?sh
Мэринус
источник
Эта программа не работает в моей системе, потому что / * / b? Sh не существует. У меня есть / usr / local / bin / bash, а не / bin / bash.
Kernigh
2
Хорошее использование оболочки оболочки!
Механическая улитка
@kernigh[[ ! -d "/bin" ]] && mkdir "/bin"; sudo cp "/usr/local/bin/bash" "/bin/bash"
Стэн Струм
Было бы лучше, если бы /bin/shBash. Тогда код может заканчиваться /*/sh(36 байтов). Но я не нашел систему, где это работает. В Debian / bin / sh не является bash. На моем старом Mac / bin / sh - это bash 2.05b0. (1), но эта версия слишком старая и не расширяется {a..z}.
Керни
11

C 90 88 84 символов

Скомпилировать используя gcc -nostartfiles

b;_exit(){for(;b<26;)printf("%c",b+++97);}    // 42 chars, works for a, u
b;_start(){putchar(b+++97)>121?:_start();}    // 42 chars, works for e, i, o
schnaader
источник
_startи _exitэто хороший способ обойти main. Но если с нестандартной строкой компиляции все в порядке, почему бы и нет -DX=main?
Угорен
4
Почему-то -DX=mainчувствует себя хуже, чем -nostartfilesделает (для меня). Это способ переместить часть исходного кода в строку компиляции, и это то же самое, что и запись #define X mainв исходном коде, которая была бы явно недействительной. Принимая во внимание, что -nostartfilesэто не способ переименовать main, но снимает ограничение, что должна быть mainфункция ( вызывается _start). С другой стороны, использование -nostartfilesнемного похоже на обман, тем более что оно содержит 4 из 5 «плохих» букв :)
schnaader
Это скользкий склон ... Расстояние от -nostartfilesдо -DX=mainмало, и почему бы не сохранить некоторые символы с -DX=main()и так далее. Но я не могу найти решение, в котором нет ничего подозрительного.
Угорен
Например, вы не можете определить основную функцию как «mn»?
Нил
@Neil, только делая что-то вроде -Dmn=main. Функция AC должна иметь mainфункцию, если не используется нестандартная опция, например -nostartfiles.
Мэтью Флэшен
9

Golfscript, 10 символов

26,{97+}%+
Хаммар
источник
18
Почему так многословно?
Питер Тейлор
9

Рубин, 20 символов

$><<[*97.chr..?z]*''
  • 97.chr это сложный способ сказать «а»
  • .. указывает диапазон
  • ?z это более короткий способ сказать "Z"
  • что [*range]вызывает диапазон для Splat аль это значение в массиве
  • *''такой же как join(''); он склеивает все значения массива вместе.
  • $><< Перлицизм: печать на стандартный вывод.
steenslag
источник
Этот код, похоже, не работает. ?zэто не сокращение для 'z', а скорее для 122. Это, однако, работает для 18 байтов:$><<[*97.chr..'z']
primo
Это работает в Ruby 1.9.
Стинслаг
1
Я скачал 1.9.3 ... и ты прав. Зачем им что-то менять? Я могу понять, почему в анархии по-прежнему работает 1.8.7. В любом случае, 18-байтовое решение работает для v1.8.7-
primo
2
(4 года спустя ...) Вы можете заменить 97.chrс ?\x61на -1 байт.
Джордан
9

DC: 18 17 символов

97[dP1+dBD>m]dsmx

И там умер отважный персонаж.

Форс
источник
Я сомневаюсь в этом. Я оборачиваюсь вокруг него и не вижу способа сократить его. Я закончил с точно таким же решением, за исключением того, что я использовал xдля регистра, что делает мое решение более запутанным.
Гинек -Пичи- Выходил
3
97[dP1+dBD>m]dsmx17 символов. По-видимому, вы всегда можете ввести шестнадцатеричные символы в DC, но поскольку входная база равна десяти, значение равно B*10+D=11*10+13=123='{'0xBD.
Форс
О, хороший глих ;-)
Гинек -Пичи- Выходил
9

Powershell, 75 62 персонажа

Редактировать: Использовал -f (String.Format) и индексирование массива, чтобы значительно уменьшить длину кода.

'{0}bcd{1}fgh{2}jklmn{3}pqrst{4}vwxyz'-f"$(1|gm)"[8,10,0,5,31]

Как это устроено

gmявляется псевдонимом для get-members, поэтому 1|gmвозвращает члены значения 1, которое имеет System.Int32тип:

PS C:\> 1|gm
   TypeName: System.Int32
Name        MemberType Definition
----        ---------- ----------
CompareTo   Method     int CompareTo(System.Object value), int CompareTo(int value)
Equals      Method     bool Equals(System.Object obj), bool Equals(int obj)
GetHashCode Method     int GetHashCode()
...

"$(1|gm)"возвращает строковое представление из приведенного выше списка, который содержит все гласные, необходимые для завершения алфавита: « int C omp ar eTo (System.Object val ue) ...»

Данко Дурбич
источник
2
Это не стабильно, если MS добавляет членов в System.Int32, хотя :-)
Джои
Я думаю, что это должно быть ($x=''+$(gv))[8]+"bcd$($x[4])fgh$($x[25])jklmn$($x[26])pqrst$($x[19])vwxyz"75 символов :)
Данко Дурбич
Ага, верно. Я выловил не тот предмет из моей истории. Сожалею.
Джои
На самом деле, если заменить ''+$(gv)с "$(gv)"вами получаете ($x="$(gv)")[8]+"bcd$($x[4])fgh$($x[25])jklmn$($x[26])pqrst$($x[19])vwxyz"который составляет 74 символов. Приятно!
Данко Дурбич
2
Я использовал -f (String.Format) и индексацию массива, чтобы значительно уменьшить длину кода.
Тим Льюис
8

BASH: 40 символов

  • Не aeiouиспользуется
  • Подстановочные знаки не используются.
`tr c-y '\141-w'<<<'rtkpvh %s c'` {b..z}
Принц Джон Уэсли
источник
8

Хаскелл, 12

['\97'..'z']

Или это обман? :)

RobAu
источник
По общему признанию я не знаю много о Haskell, но это дает мне эту ошибку:Parse error: naked expression at top level
primo
1
Вы запускаете его в интерпретаторе
RobAu
7

MATLAB, 12 + 20 = 32 символа

Нет (12):

char(97:122)

Нет (20)

fprintf('%s',97:122)
Jonas
источник
7

В Perl

это также возможно без гласных

но гораздо сложнее, чем в Ruby и т. д. При этом используется всего 101 символ, но не требуется вызов строки cmd (perl -e).

`\160\145\162\154\40\55\145\40\42\160\162\151\156\164\40\123\124\104\105\122\122\40\141\56\56\172\42`

=> Результат: abcdefghijklmnopqrstuvwxyz

В отличие от «похожего» решения PHP , это настоящая программа . Программа расшифровывается следующим образом:

perl -e "print STDERR a..z"

После кодирования в восьмеричные значения другой интерпретатор perl вызывается во время выполнения `` (backticks). Обратные метки будут потреблять вывод, поэтому он печатается в STDERR.

Кодировка выполняется с помощью sprintf:

my $s = q{perl -e "print STDERR a..z"};
my $cmd = eval(
       '"' . join('', map sprintf("\\%o",ord $_), split //, $s) . '"'
       );

а eval'd-кодировка - это опубликованная программа (в пределах обратных галочек):

"\160\145\162\154\40\55\145\40\42\160\162"
"\151\156\164\40\123\124\104\105\122\122"
"\40\141\56\56\172\42"

С уважением

БВ

резиновые сапоги
источник
8
Вы можете сократить это до 44 символов, только кодируя гласные :)
marinus
7

Perl 5, 22 символа

(1) содержит только aи e, 10 символов (требуется 5.10+, запустить из командной строки):

-Esay+a..z

(2) содержит только «я», 12 символов:

print v97..z

Если не разрешено запускать из командной строки, то вам нужно использовать use 5.01;say a..zдля первого, по стоимости 7 символов и еще один гласный, но у него по-прежнему нет «i», так что это приводит к действительной записи в общей сложности 29 персонажи.

Марк Рид
источник
Я думаю, что опция -E в порядке, но обычно к общей длине символа добавляются два символа -E.
Гарет
@gareth - -E занимает место -e для запуска одной строки. Если вы запускаете программу из файла, то вы застряли с use, хотя вы можете заменить ее параметром командной строки -M5.01и сбрить еще два символа.
Марк Рид
Я думал о правиле с -pопцией, где 2 символа добавляются к счету. Однако, глядя на этот мета-вопрос, вы сможете использовать -M5.010бесплатно, если эта опция поможет сократить ваш код.
Гарет
Вы могли бы заменить свое printзаявление, dieчтобы сбрить 2
символа
chr 97..zможет быть заменено v97..zна 3 байта.
Примо
7

APL (Дьялог) ( 11 13)

Вам может понадобиться шрифт APL. Это должен быть Unicode, но нет предварительного просмотра ...

Только U(и, возможно, если считать греческие гласные):

⎕UCS 96+⍳26

(Это: [quad]UCS 96+[iota]26 )

Только A:

⎕A
Мэринус
источник
2
Uэто гласная ...
Тобия
@Tobia: и потребовалось больше года, чтобы кто-то это увидел (включая меня). Я думаю, что йота на самом деле тоже гласная, когда я думаю об этом. Починил это.
Маринус
Функциональный символ APL йота (U + 2373) не считается буквой в Юникоде и поэтому не может быть гласным. Обратите внимание, что он отличается от греческой строчной буквы йота (U + 03B9).
нгн
7

Python 2, 83

Нет , я , о или у ; 47 :

x=97;s='';exec"s+=chr(x);x+=1;"*26+"pr\x69nt s"

Нет е ; 36 :

print"abcd\x65fghijklmnopqrstuvwxyz"
flornquake
источник
6

Python 2, 175 символов

Примечание: вывод на печать в отличие от более раннего ответа Python .

Использует 'e', ​​но не a, i, o, u - 63 61 59 65 (исправить ошибочное iперемещение в нижний регистр) 115 символов (избавиться от пробелов).

exec('fr%cm sys %cmp%crt*\nf%cr x %cn r%cnge(97,123):std%c%ct.wr%cte(chr(x)),'%(111,105,111,111,105,97,111,117,105))

(Первоначально он использовал печать с запятой, которая вставляла пробел; также печатались буквы в верхнем регистре. Теперь рассматривал строгие требования для 'abcdefghijklmnopqrstuvwxyz' в качестве выходных данных; поэтому добавлен оператор импорта).

Не использует 'e' (использует a, i, o, u; может легко избавиться от a, u для небольшого расширения) - 61 60 символов

import string
print string.__dict__['low%crcas%c'%(101,101)]
доктор джимбоб
источник
1
Ваше первое решение использует букву i, так и должно быть: exec('f%cr x %cn r%cnge(65,91):pr%cnt chr(x),'%(111,105,97,105))и мы вернулись к 64 символам.
BioGeek
1
exec('fr%cm sys я mp%crt*\nf%cr ...
Гарет
BioGeek & @Gareth - мои навыки обнаружения гласных - отстой. Спасибо за указание на это; но у меня была дополнительная буква e, написанная как «% c», так что в конце она выровнялась.
Доктор Джимбоб
Вы можете удалить скобки изexec('...')
mbomb007
5

JavaScript (154)

(1) Только содержит i(99 символов):

t=this;s=-t+t+t.b;z=s[1]+'bcd'+s[7]+'fghijklmn'+s[4]+'pqrst'+s[21]+'vwxyz';t[s[1]+'l'+s[7]+'rt'](z)

(2) Только содержит aeou(55 символов):

t=0;s=''+t.b;alert('abcdefgh'+s[5]+'jklmnopqrstuvwxyz')

Демо: http://jsfiddle.net/SvN5n/

mellamokb
источник
$("h\x65\x61d")[0]["\x6fwn\x65rD\x6fc\x75m\x65nt"]["l\x6fc\x61t\x69\x6fn"]="j\x61v\x61scr\x69pt:\x65v\x61l(`f\x6fr(s='',l=65;l<90;l++){s=s+Str\x69ng.fr\x6fmCh\x61rC\x6fd\x65(l);};c\x6fns\x6fl\x65.l\x6fg(s)`)"208 символов, не aeouiиспользуется в коде. Работает на браузере Chrome.
Esc Điệp
5

питон 159 117

Как упоминалось в другом посте о питоне, самая сложная часть связана с тем, что единственный способ вывода - это использовать printилиsys.stdout.write , оба из которых содержат i. Необходимо сделать это с 2 программами (которые являются автономными и не используют интерактивную оболочку python для создания выходных данных):

Этот использует только я для 55 символов:

print"%cbcd%cfghijklmn%cpqrst%cvwxyz"%(97,101,111,117)

Этот избегает использования i для 104 символов:

eval("sys.stdout.wr%cte"%105,{'sys':eval("__%cmport__('sys')"%105)})("%c"*26%tuple(range(97,123))+"\n")

РЕДАКТИРОВАТЬ: Массовый прорыв !!! Я думал, что использование eval (или даже exec) было чем-то вроде обмана и не совсем в духе конкуренции. В любом случае, просматривая встроенные функции, я нашел способ заполучить функцию печати без использования i. Итак, вот программа избежать-i (и o) для 68 символов:

vars(vars().values()[0])['pr%cnt'%105]("%c"*26%tuple(range(97,123)))

Но так как это также позволяет избежать o, это может быть связано с тем, что позволяет избежать a, e, u для 49 символов:

print"%cbcd%cfghijklmnopqrst%cvwxyz"%(97,101,117)
Бенедикт
источник
Вы можете отказаться от совместимости и получить характер -vars(vars().values()[0]).values()[47]
Угорен
5

Рубин 196 164 44 47

$><<"\x61bcd\x65fgh\x69jklmn\x6Fpqrst\x75vwxyz"
Кристиан Лупаску
источник
Это правильный ответ, так как pвыводит кавычки вокруг алфавита?
Марк Рид
Я согласен, p xчто эквивалентно вызову puts str.inspect, что приводит к кавычкам.
Патрик Осци
@padde вы оба правы; изменилось.
Кристиан Лупаску
1
@padde Я использовал твой $><<, так что +1 за это и поздравляю; ваша версия намного лучше
Кристиан Лупаску
5

Руби, 22

$><<[*?`..?{][1,26]*''

Никаких писем вообще :)

duckinator
источник
5

VBA: 76 переборов, 116 без «мошенничества» (98, если на выходе допустимы переводы строки)

Стандартные функции

Благодаря многословности VBA, я не верю, что это можно сделать без 'E' или 'U' в стандартном модуле кода ...

  • " E - й»
  • " Фу nction"
  • " Су б"

Непосредственные функции

Работая с допущением mellamokb, здесь без объявления функции (опуская SUBи FUNCTION) ( 116 символов , 98 если переводы строки допустимы в выходных данных):

Ниже не используются ни «e», ни «a» ( 43 символа , отформатированные для запуска в непосредственном окне):

b=65:Do:z=z+Chr(b):b=b+1:Loop Until b=91:?z

Ниже не используются ни «i», ни «a», ни «u» ( 33 символа , отформатированные для запуска в непосредственном окне):

For b=65 To 90:z=z+Chr(b):Next:?z

Ниже не используются ни «a», ни «o», ни «u» ( 40 символов , отформатированные для запуска в непосредственном окне):

b=65:While b<91:z=z+Chr(b):b=b+1:Wend:?z

Если в выводе разрешены символы новой строки, приведенные выше примеры могут быть короче:

( 37 символов )

b=65:Do:?Chr(b):b=b+1:Loop Until b=91

( 27 символов )

For b=65 To 90:?Chr(b):Next

( 34 символа )

b=65:While b<91:?Chr(b):b=b+1:Wend

Грубая сила

Бег с ответом Ruby на w0lf

( 76 символов , отформатированные для запуска в ближайшем окне):

?Chr(65)&"BCD"&Chr(69)&"FGH"&Chr(73)&"JKLMN"&Chr(79)&"PQRST"&Chr(85)&"VWXYZ"
Gaffi
источник
1
Я думаю, что было бы справедливо не учесть Sub..End Subэто, поскольку большинство других программ не включают определение функций.
mellamokb
@mellamokb Ну, это заставляет меня чувствовать себя лучше. Я приведу несколько примеров, чтобы добавить к этому.
Гаффи
2
Просто представьте, что это «код, который вы запускаете в ближайшем окне» :)
mellamokb
2
Хорошо, если вы сомневаетесь, просто назовите его VBScript, который может быть включен в файл без необходимости Sub:)
Джои
Исправлена ​​куча ненужных пробелов, измененных printна, ?так как это работает в непосредственном окне.
Gaffi
5

Ребму : 15 персонажей

Ctc'`L26[pn++C]

Чтение Rebmu всегда требует небольшого размышления, чтобы начать с:

c: tc '` l 26 [pn ++ c]

Тогда это помогает расширить аббревиатуры:

c: to-char-mu '`
loop 26 [
    prin ++ c
]

Было бы более очевидно использовать символьный литерал для предшественника строчной буквы a:

c: #"`"
loop 26 [
    prin ++ c
]

Но это не «кашу», поэтому преобразование буквального слова в символ проходит с той же целью. Что мне нравится в этом, как и в большинстве Rebmu, так это то, что он имеет дух разумной программы, несмотря на сжатие. (Ответ от Golfscript короче, но не соответствует тому, как программист обычно думает при кодировании.)

Доктор Ребму
источник
5

<> <(Рыба) - 22 символа

Поскольку <> <использует «o» для печати символа, эта задача кажется невозможной. К счастью, рыба может изменить свой собственный код во время выполнения. Это позволило мне добавить инструкцию печати к коду.

Этот код не использует ни одну из гласных:

'`78'+11pv
:X:'z'=?;>1+

Вы можете запустить код здесь

Тийс тер Хаар
источник