Друкуйте алфавіт, не використовуючи кожного голосного


72

Натхнення : у 1939 році людина на ім’я Ернест Вінсент Райт написав роман під назвою Гідсбі, не використовуючи букву «е».

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

Так що повинно бути

  • програма, яка не використовує " a " або " A " ніде в синтаксисі програми.
  • програма, яка не використовує ' e ' або ' E ' ніде в синтаксисі програми.
  • програма, яка не використовує « я » або « я » ніде в синтаксисі програми.
  • програма, яка не використовує " o " або " O " ніде в синтаксисі програми.
  • програма, яка не використовує ' u ' або ' U ' ніде в синтаксисі програми.

Усі вони повинні вивести abcdefghijklmnopqrstuvwxyz.

Переможцем стає рішення, коли тривалість усіх програм найкоротша.

* оскільки обмеження не було б великою проблемою в Piet або Whitespace


Поточний рейтинг (06 березня 2014 р.):


4
@ w0lf: Ні, в ньому йдеться про "до 5 програм" та "тривалість усіх програм", які я читав як "у цьому випадку може бути лише одна програма, і її довжина рахується".
шнадер

9
@PeterTaylor: Ви не думаєте, що уникати використання голосних голосів у синтаксисі є унікальною проблемою? Як програмісту JS, це особливо цікаво :)
mellamokb

2
Чи прийнятні нові рядки у висновку (тобто один на символ)? Я можу скоротити частину свого коду, якщо це так ...
Gaffi

2
Чи дозволений вихід великого регістру?
Ерік Аутгольфер

2
Я ОП. Великі регістри заборонені.
shamp00

Відповіді:


48

Гольфскрипт - 8 символів

123,97>+

8
чорт, справді не вдається перемогти гольфскрипт у плані лаконічності ...
Патрік Осіті

18
Як сказано, читабельність смердить як божевільна.
Ендрю Грей

5
Це не так вже й погано;) генеруйте список із 123 чисел, видаліть ті, які не перевищують 97, примусуйте його (масив чисел) до рядка.
Маккей

3
Використовуйте 91,65>+замість цього.
Ерік Аутгольфер


23

PHP, 31 байт

Ні a, e, i, o, u:

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

Двійковий рядок після тильди має таке шістнадцяткове представлення:

\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
ізо-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.
аксіак

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використовується для перетворення значення char в char. Ці значення виходять із [*97..122]якого створює масив, що містить значення від 97 до 122. Et voilá!


Дуже хороша. Я шукав спосіб використання, <<але забув про нього $>.
Марк Рід

1
Я навіть не знав про це $>раніше, але я здогадувався, що для $stdoutцього ніхто не може згадати :)
Патрік Осьміті,

21 символ: $><<[*"`".."z"][1,26](зверніть увагу: це працює лише в Ruby 1.8)
Вентеро

@ Вентеро працює не тільки в Ruby 1.8, але і в Ruby 1.9.2. Але використання p [*"".." z "] [1,26]` ще коротше.
Hauleth,

@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

Піф , 1 персонаж

G

Pyth визначає певні змінні. G визначений як малий алфавіт. Pyth також неявно друкує кожен рядок з розумним значенням повернення.


3
Ніндзя зробив мене 3 роки ...
Стен Струм

15

JavaScript (100)

Ні "еу":

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

Ні 'я':

alert('abcdefgh\x69jklmnopqrstuvwxyz')

+1 Приємне поліпшення моєї відповіді :) Я думав про використання \x##кодів, але не був впевнений, чи дійсні вони в JavaScript.
mellamokb

чому сповіщення взагалі? на js-терміналі об'єкти повторюються автоматично. ('\ x61bcd \ x65fghijklmn \ x6fpqrst \ x75vwxyz') @ 42 символи.
antony.trupe

3
@ antony.trupe, для коду гольф, IO, як правило, здійснюється за допомогою вбудованих у мову механізмів вводу-виводу (або загальних плагінів). Для JS це , як правило alert, confirm, prompt, console.log, і document.write. Просто оголошення літерального рядка не призводить до його виведення при виконанні. Інакше ви будете правильні, і я б це використав.
zzzzBov

він дає вихід (за визначенням, який я будь-коли використовую) на хромовій консолі google, але я визнаю проблему; це довільне обмеження для початку.
antony.trupe

@ antony.trupe, мовою на зразок PHP, ви могли б уникнути використання буквалу, тому що так воно виконує IO.
zzzzBov

15

К, 9

_26#.Q.b6

К, 10

"c"$97+!26

К, 14

.:".Q.","c"$97

2
і нерозумний спосіб зробити це взагалі без літер (12 символів):(@$`)$97+!26
Аарон Девіс

1
Шлях K5 є майже вашим другим рішенням, але $бере символи замість рядків для керування типом, перетвореним у: `c $ 97 +! 26
JohnE

15

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

Через годину або близько того, копаючись у ящику нижньої білизни J, я нарешті знайшов спосіб усунути a.і u:дієслова.

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

Раніше:

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

завдяки спалаху випадкових за #\трюк.


Приємне рішення! Вдалося скоротити за допомогою 1 знака #\ замість, ніж +/\ .
randomra

5
Вийди з мого ящика для нижньої білизни
Джо

14

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

немає ае (17):

intToUtf8(97:122)

немає йо (19):

cat(letters,sep="")

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"
Stan Strum

Було б краще, якщо /bin/shце баш. Тоді код може закінчитися /*/sh(36 байт). Але я не знайшов системи, де це працює. У Debian, / bin / sh не є bash. У моєму старому Mac / bin / sh є bash 2.05b0. (1), але ця версія занадто стара і не розширюється {a..z}.
kernigh

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

_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. Функція змінного струму повинна мати mainфункцію, якщо не використовується нестандартний варіант, наприклад -nostartfiles.
Меттью Флашен


9

Рубін, 20 ч

$><<[*97.chr..?z]*''
  • 97.chr - це складний спосіб сказати "а"
  • .. задає Діапазон
  • ?z - коротший спосіб сказати "z"
  • то [*range] викликає діапазон для Splat аль це значення в масиві
  • *'' те саме, що join('') ; він склеює всі значення масиву разом.
  • $><< Перліцизм: друк до stdout.

Схоже, цей код не працює. ?zце не скорочення 'z', а скоріше для 122. Однак це працює на 18 байт:$><<[*97.chr..'z']
Прим

Це працює в Ruby 1.9.
steenslag

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для реєстрації, що робить моє рішення більш затуманеним.
Hynek -Pichi- Vychodil

3
97[dP1+dBD>m]dsmx, 17 символів. Мабуть, ви завжди можете вводити шістнадцяткові символи в постійному струмі, але як база вводу десять, це значення B*10+D=11*10+13=123='{', а не 0xBD.
Форс

О, приємний гліч ;-)
Hynek -Pichi- Vychodil

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, хоча :-)
Joey

Я думаю, що це повинно бути ($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

БАШ: 40 символів

  • Немає aeiou використовується.
  • Ніякі символи не використовуються.
`tr c-y '\141-w'<<<'rtkpvh %s c'` {b..z}

8

Хаскелл, 12

['\97'..'z']

Або це обман? :)


Я, правда, не знаю багато про 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)

7

У Перлі,

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

але набагато складніше, ніж у 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. Повернення посилань споживало б результат, тому він друкується на 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"

З повагою

rbo


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 символів та ще однією голосною, але у нього все ще немає "я", тож це призводить до дійсного запису у загальній кількості 29 символів.


Я думаю, що параметр '-E' нормальний, але зазвичай два символи '-E' додаються до загальної довжини символів.
Гарет

@gareth - the -E займає місце -e для запуску однолінійного. Якщо ви запускаєте програму з файлу, то ви застрягли зuse хоча ви можете замінити його на варіант командного рядка -M5.01і збрити ще два символи.
Марк Рід

Я думав про правило з -pваріантом, коли до рахунку додаються 2 символи. Дивлячись на цеОднак, мета-питання, ви повинні мати можливість користуватися -M5.010безкоштовно, якщо ця опція допоможе скоротити код.
Гарет

ви можете замінити свою printзаяву наdie збрити 2 символів
ardnew

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

@Tobia: і хтось це побачив (включаючи мене) знадобився рік. Я думаю, що йота насправді також є голосною зараз, коли я думаю про це. Виправлено це.
marinus

Функціональний символ APL-йота (U + 2373) не вважається буквою у Unicode, а тому не може бути голосним. Зауважте, що він відрізняється від грецької малої літери йота (U + 03B9).
ngn

7

Пітон 2, 83

Ні a , i , o чи u ; 47 :

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

Ні е ; 36 :

print"abcd\x65fghijklmnopqrstuvwxyz"

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 - мої навички ручного виявлення голосних недосяжні. Дякую за те, що зауважив; але у мене був додатковий е, написаний як "% c", тож він зрештою вирівнюється.
д-р Джимбоб

Ви можете видалити дужки зexec('...')
mbomb007

5

JavaScript (154)

(1) Вміщує лише i99 символів:

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) Вміщує лише aeou55 символів:

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

Демонстрація: http://jsfiddle.net/SvN5n/


$("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. Це потрібно зробити з двома програмами (які є автономними і не використовують інтерактивну оболонку 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")

EDIT: Масивний прорив !!! Я думав, що використання eval (або навіть exec) було чимось обманом і не справді в дусі змагань. У будь-якому випадку, перебираючи вбудовані я знайшов спосіб отримати функцію друку без використання i. Ось ось програма Avo-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]
ugoren

5

Рубін 196 164 44 47

$><<"\x61bcd\x65fgh\x69jklmn\x6Fpqrst\x75vwxyz"

Це правдива відповідь, оскільки pвиводить лапки навколо алфавіту?
Марк Рід

Я погоджуюсь p x, рівнозначно дзвінків puts str.inspect, що призводить до навколишніх лапок.
Патрік Осіті

@padde ви обоє праві; змінився.
Крістіан Лупаску

1
@padde Я використав ваш $><< , тому +1 за це і вітаю; Ваша версія набагато краща
Крістіан Лупаску,


5

VBA: 76 грубої сили, 116 без "обману" (98, якщо у виводі прийнятні нові рядки)

Стандартні функції

Завдяки багатомовності VBA, я не вірю, що це можна зробити без 'E' або 'U' у стандартному модулі коду ...

  • " E nd"
  • "F у nction"
  • "S u b"

Безпосередні функції

Працюючи з припущенням 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

Нижче не використовується ні 'а', ні '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"

1
Я думаю, що було б справедливо залишатись Sub..End Subпоза увагою, оскільки більшість інших програм не містять визначення функції.
mellamokb

@mellamokb Добре, що мені стає краще. Я підкачу кілька прикладів, щоб додати це.
Гаффі

2
Просто подумайте про це як "код, який ви запускаєте в безпосередньому вікні" :)
mellamokb

2
Ну, якщо ви сумніваєтесь, просто назвіть це VBScript, який можна включити у файл, не потребуючи Sub:)
Joey

Виправлено купу непотрібних пробілів, змінених printдо ?тих пір, як це працює у безпосередньому вікні.
Гаффі

5

Ребму : 15 символів

Ctc'`L26[pn++C]

Читання Ребму завжди вимагає трохи нерозумного початку для початку:

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+

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.