Выведите несколько зарезервированных слов


9

Для компьютерного языка зарезервированное слово - это слово, которое нельзя использовать в качестве идентификатора, например, имя переменной, функции или метки. Для других компьютерных языков ключевые слова могут рассматриваться как набор языковых инструкций.

Вызов

Используя выбранный вами язык, напишите код на выбранном языке, который имеет число от одного до десяти 1<=n<=10, выводит любые nзарезервированные слова (ключевые слова) выбранного языка.

конкретика

  • Если выбранный язык чувствителен к регистру, выводимые ключевые слова также должны быть.
  • Если выбранный язык не чувствителен к регистру, выводимые ключевые слова могут быть в любом случае.
  • Если выбранный язык имеет менее 10 ключевых слов p, код должен вывести все зарезервированные слова для любого nмежду pи 10.
  • Если возможно, укажите в ответе, считаете ли вы операторы ключевыми словами или нет.

Возможные образцы для Java (JDK10)

  • n=1 --> true
  • n=3 --> try new interface
  • n=4 --> continue this long break

Возможные образцы для> <>

  • n=1 --> >
  • n=3 --> > < ^
  • n=4 --> > < \ /

Возможные образцы для Brain-Flak

  • n=1 --> (
  • n=3 --> ( ) [ ]
  • n=9 --> ( ) [ ] { } < >

правила

  • Вход и выход могут быть предоставлены в любом удобном формате .
  • Нет необходимости обрабатывать недопустимые значения ввода , допустимые значения: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
  • Допустимы либо полная программа, либо функция. Если функция, вы можете вернуть вывод, а не распечатать его.
  • Если возможно, пожалуйста, включите ссылку на онлайн-среду тестирования, чтобы другие люди могли опробовать ваш код!
  • Стандартные лазейки запрещены.
  • Это поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).

Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Mego

2
continue this long breakХотелось бы! Вот почему я на SE!
Стэн Струм,

целые числа зарезервированы, но я думаю, что это лазейка.
snoram

Ответы:


7

APL (Dyalog Unicode) , 9 байтов SBCS

Полная программа. Запрашивает stdin для n(на самом деле работает в диапазоне 0–29). Ключевые слова APL являются односимвольными символами, поэтому это выводит nсимволы на стандартный вывод.

⎕↑156↓⎕AV

Попробуйте онлайн!

⎕AV атомный вектор (т.е. набор символов)

156↓ отбросить первые 156 элементов

⎕↑ подскажите nи возьмите столько элементов из вышеперечисленного


5

Python 2 , 25 байт

lambda n:'=+*/%&^|<>'[:n]

Безымянная функция принимает целое число в [1,10], которое возвращает строку однобайтовых двоичных операторов.

Попробуйте онлайн!

Операторы:

=  Assign
+  Addition
*  Multiplication
/  Division
%  Modulo
&  Bitwise-AND
^  Bitwise-XOR
|  Bitwise-OR
<  Less Than?
>  Greater Than?

Если разрешены только фактические ключевые слова: 40 байт

from keyword import*
lambda n:kwlist[:n]

Безымянная функция принимает целое число в [1,10], которое возвращает список строк.

Попробуйте онлайн!

Код должен быть достаточно простым - он определяет функцию, принимающую один аргумент, nиспользуя lambda n:...который возвращает first n( ...[:n]) из известных ключевых слов, используя стандартные библиотеки keywords.kwlist(вместе со стандартной техникой игры в гольф import*).


очень незначительный момент, но, безусловно, =это «Задание», как ==и «Тест на равенство»
Noodle9

Ой, хороший улов, спасибо @ Noodle9
Джонатан Аллан

Странный отрицательный голос! Изменить: Кто-то решил, что все ответы здесь заслуживают понижающего голоса. LOL
Джонатан Аллан

Конечно, не я - мне понравился твой ответ и я проголосовал за него! :)
Noodle9

4

Java 10, 83 72 байта (ключевые слова)

n->"do   if   for  int  new  try  var  byte case char ".substring(0,n*5)

Попробуйте онлайн.

Старый 83 байта ответа:

n->java.util.Arrays.copyOf("do if for int new try var byte case char".split(" "),n)

Попробуйте онлайн.

Объяснение:

n->                         // Method with integer parameter and String-array return-type
  java.util.Arrays.copyOf(  //  Create a copy of the given array:
    "do if for int new try var byte case char".split(" ") 
                            //   The keywords as String-array,
    ,n)                     //   up to and including the given `n`'th array-item

Список доступных ключевых слов для Java 8. Java 10 имеет ключевое слово varв дополнение к ним.


Java 8+, 30 байт (операторы)

n->"+-/*&|^~<>".substring(0,n)

Попробуйте онлайн.


3

Желе , 3 байта

ØAḣ

Монадическая ссылка, принимающая целое число и возвращающая список символов.

Попробуйте онлайн!

Получающиеся символы - все монадические атомы в кодовой странице Желе :

A   Absolute value.
B   Convert from integer to binary.
C   Complement; compute 1 − z.
D   Convert from integer to decimal.
E   Check if all elements of z are equal.
F   Flatten list.
G   Attempt to format z as a grid.
H   Halve; compute z ÷ 2.
I   Increments; compute the differences of consecutive elements of z.
J   Returns [1 … len(z)].

Как?

ØAḣ - Link: integer n (in [1,10])
ØA  - yield uppercase alphabet = ['A','B','C',...,'Z']
  ḣ - head to index n

О - я вижу, что кто-то решил отклонить ВСЕ ответы; как спортивно!
Джонатан Аллан

Думаю, этот ответ тоже заслуживает одобрения! :)
Noodle9

3

Древесный уголь , 16 байт

✂”yPBG¤T⎚M↶↷J”⁰N

Жаль, что в Charcoal нет предустановленной переменной для собственной кодовой страницы.

Попробуйте онлайн.

Объяснение:

Получить подстроку от индекса 0 до номера ввода:

Slice("...",0,InputNumber)
✂”y...”⁰N

Строка с 10 ключевыми словами:

”yPBG¤T⎚M↶↷J”

Я предполагаю, что буквы полной ширины имеют последовательные коды символов, так что вы можете просто напечатать первый nиз них, что я могу сделать в 8 байтов.
Нил

@Neil Но десять из этих последовательных символов используются в качестве команд / операторов? , Например , не используется вообще прямо сейчас, не так ли? (За исключением в сочетании с KAили ⌕A.)
Кевин Круйссен

На самом деле это команда и оператор, но не очень хороший, так как это может вызвать путаницу между Findи FindAll, но затем вы снова застреваете в и , которые используются только как модификаторы, а затем вообще не используются, что ограничивает вас. Греческие буквы, тогда?
Нил

Неважно, это переменные, а не команды, я думаю.
Нил

3

Perl 5 -lp , 24 байта

#!/usr/bin/perl -lp
$_=(grep!eval,a..zz)[$_]

Попробуйте онлайн!

Легко распространяется на все более и более длинных ключевых слов, но вам нужно будет делать специальный кожух , начиная с 4 -х букв , потому что вы столкнетесь с проблемами dump, eval, exit, и getcт.д ..

Конечно, просто выводить операторы и сигилы скучно, но короче на 11 байтов:

#!/usr/bin/perl -lp
$_=chr$_+35

Попробуйте онлайн!

(Я пропустил, #так как неясно, как я должен классифицировать это в контексте этой задачи)


3

JavaScript (Node.js) , 79 61 байт

n=>'true int var for in if new try of do'.split` `.slice(0,n)

Попробуйте онлайн!

Как :

n =>         // the input (will be an integer) between 1 and 10 (both inclusive)
    '        // beginning our string 
        true int var for in if new try of do'. // space separated reserved words
    split` `.        // turn it into an array every time there is a space we add to array
    slice(0,n)      // return elements of array starting from 0 and upto n

Если использование операторов разрешено (скорее всего, так как они являются зарезервированными словами), то:

JavaScript (Node.js) , 26 25 байт

n=>'|/^%+<&*-='.slice(-n)

Попробуйте онлайн!

Благодаря @Adam сэкономлено 8 байт, а благодаря @ l4m2 - еще 1 байт.

Как :

n =>     // input (integer from 0-9 inclusive)
    '|/^%+<&*-='.    // operators make a shorter string 
        slice(-n)   // outputs string chars from last upto n 
            // this works since all operators are single chars and not multi chars.


О да, Лол все еще играет в гольф. Спасибо @ Адам. Ценить это.
Мухаммед Салман

3
Я не думаю, что intэто «зарезервированное слово» согласно определению в вызове. Вы можете назвать переменную intв JavaScript.
kamoroso94

1
Если я хорошо помню, intзарезервировано как возможное будущее ключевое слово спецификацией ECMAScript.
BNilsou

Почему substrвместо slice?
l4m2

3

Рубин , 22 байта

->n{'+-*/%&|^<>'[0,n]}

Попробуйте онлайн!

-2 байта благодаря @ benj2240


Хорошо. Буду обновлять мой ответ.

String#[]имеет перегрузку с двумя аргументами, которую можно использовать для -2 байтов:[0,n]
benj2240

pне зарезервированное слово, &должно работать
Asone Tuhid

@AsoneTuhid: p также используется для печати, но вы правы, я могу заменить его. Спасибо

@ I'mnoone Да, но это метод, вы можете переопределить его и создать переменную с именем, к pкоторой будет обращаться вместо вызова метода без переменных ( p = 1; p p #=> 1)
Asone Tuhid

2

Pyth , 4 байта

>QPG

Попробуйте онлайн!

К сожалению, многие буквы являются переменными ( GHJKNQTYZbdkz).

p  <any>                  Print A, with no trailing newline. Return A.
q  <any> <any>            A == B
r  <str> 0                A.lower()
r  <str> 1                A.upper()
r  <str> 2                A.swapcase()
r  <str> 3                A.title()
r  <str> 4                A.capitalize()
r  <str> 5                string.capwords(A)
r  <str> 6                A.strip() - Remove whitespace on both sides of A.
r  <str> 7                Split A, eval each part.
r  <seq> 8                Run length encode A. Output format [[3, 'a'], [2, 'b'], [1, 'c'], [1, 'd']].
r  <str> 9                Run length decode A. Input format '3a2bcd' -> 'aaabbcd'
r  <seq> 9                Run length decode A. Input format [[3, 'a'], [2, 'b'], [1, 'c'], [1, 'd']].
r  <int> <int>            Range, half inclusive. range(A, B) in Python, or range(A, B, -1).
r  <str> <str>            String range. r(C(A), C(B)), then convert each int to string using C.
r  <int> <seq>            r(B, A)
s  <col(str)>             Concatenate. ''.join(A)
s  <col>                  reduce on +, base case []. (Pyth +)
s  <cmp>                  Real part. A.real in Python.
s  <num>                  Floor to int. int(A) in Python.
s  <str>                  Parse as int. "" parses to 0. int(A) in Python.
t  <num>                  A - 1.
t  <seq>                  Tail. A[1:] in Python.
u  <l:GH> <seq/num> <any> Reduce B from left to right, with function A(_, _) and C as starting value. G, H -> N, T ->. A takes current value, next element of B as inputs. Note that A can ignore either input.
u  <l:GH> <any> <none>    Apply A(_, _) until a result that has occurred before is found. Starting value B. A takes current value, iteration number as inputs.
v  <str>                  Eval. eval(A) without -s, ast.literal_eval(A) with -s (online). literal_eval only allows numeric, string, list, etc. literals, no variables or functions.
w                         Take input. Reads up to newline. input() in Python 3.
x  <int> <int>            Bitwise XOR. A ^ B in Python.
x  <lst> <any>            First occurrence. Return the index of the first element of A equal to B, or -1 if none exists.
x  <str> <str>            First occurrence. Return the index of the first substring of A equal to B, or -1 if none exists.
x  <non-lst> <lst>        All occurrences. Returns a list of the indexes of elements of B that equal A.
x  <str> <non-lst>        First occurence. Return the index of the first substring of A equal to str(B), or -1 if none exists.
y  <seq>                  Powerset. All subsets of A, ordered by length.
y  <num>                  A * 2.

2

C # .NET, 76 62 байта (ключевые слова)

n=>"as  do  if  in  is  for int new out ref ".Substring(0,n*4)

Попробуйте онлайн.

Старый 76-байтовый ответ:

using System.Linq;n=>"as do if in is for int new out ref".Split(' ').Take(n)

Попробуйте онлайн.

Объяснение:

using System.Linq;  // Required import for Take
n=>                 // Method with integer parameter and IEnumerable<string> return-type
  "as do if in is for int new out ref".Split(' ') 
                    //  The keywords as string-array,
  .Take(n)          //  and return the first `n` items

Список доступных ключевых слов в C # .NET.


C # .NET, 30 байтов (операторы)

n=>"+-/*&|^~<>".Substring(0,n)

Попробуйте онлайн.


2

Очарование , 52 байта

Это выводит все зарезервированные слова в Charm.

" [  := :: \"   " 0 2 copyfrom 3 * substring pstring

Поскольку весь нерекурсивный код в Charm является встроенным, это анонимная функция. Звоните так:

4 " [  := :: \"   " 0 2 copyfrom 3 * substring pstring 

(выходы [ := :: ", только четыре зарезервированных слова.)


При присвоении этой функции имя добавляет 5 байтов:

f := " [  := :: \"   " 0 2 copyfrom 3 * substring pstring

2

Brain-Flak , 122 120 байт

({}<((((((((((((((()()){}()){}){}){})())[][]){}())()())[(([][]){}){}()])()())){}())[()()])>){({}<{({}<>)(<>)}{}>[()])}<>

Попробуйте онлайн!

Просто делаю свою часть, чтобы заполнить примеры языков. Выходы ()[]<>}{, выскакивающие спереди на номера меньше 8.


2

Unary , 6072204020736072426436 378380483266268 байт

+[>+<+++++]>---. (0o12602122222703334)

Спасибо Джо Кингу за 99.999993768646738908474177860631% сокращения


1
Правильно ли указан номер байта?
mdahmoune

@mdahmoune Я так думаю
l4m2

!! Это очень большой
mdahmoune

@mdahmoune Это на самом деле довольно « маленький » для Унар. ;) Если вы ищете другие ответы Unary или Lenguage здесь, на PPCG, то есть намного больше, чем это.
Кевин Круйссен

,[.-]Подходит ли в Ленгуаге требование?
м2


2

Рубин, 71 68 байт

->n{(?a..'zzz').reject{|x|begin;eval x+'=n';rescue Object;end}[0,n]}

Хорошо, не самый короткий подход, но слишком весело, чтобы не публиковать. Программно находит все строки длиной до трех строчных букв, которые не могут быть назначены. Там бывает ровно 10 ["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"].

Изменить: Сохранено 3 байта благодаря Асоне Тухид.


1
Хорошо, вы можете сэкономить 3 байта , спасая, Objectтак как это суперклассException
Asone Tuhid

2

Japt , 3 байта

Возвращает строку, где каждый отдельный символ является именем метода в Japt.

;îC

Попробуй это

;Cявляется строчным алфавитом и îповторяет его до тех пор, пока его длина не будет равна вводу.


@ Downvoter, вы забыли оставить комментарий! : \
Лохматый

Кажется, что кто-то проголосовал против всех ответов: /
mdahmoune


2

R , 76 62 60 57 байт

12 байтов сохранено благодаря MickyT

5 байтов сохранено благодаря snoram

cat(c("if","in",1:0/0,"for",F,T,"NULL","else")[1:scan()])

Попробуйте онлайн!

В R не так много зарезервированных слов, но они являются одними из самых коротких для кодирования. Здесь только 9, но если 10задан ввод , пропущенное значение NAдобавляется в конец списка и печатается.


Немного быстрых небольших сбережений
MickyT

@ MickyT спасибо! Понял, что я могу хранить "NaN"как 0/0или NaNдля другой пары байтов.
Джузеппе

заменить 1/0,0/0на 1:0/0.
snoram

2
@ Snoram Ах, отлично! И добро пожаловать в PPCG! Я с нетерпением жду вашего первого ответа здесь! Посмотрите советы по игре в гольф в R и не стесняйтесь пинговать меня в чате! :-)
Джузеппе

Спасибо! @ Джузеппе, кстати. 1[1:2]возвращает [1] 1 NA=> вы можете пропустить NAисходный вектор ... если пользовательский ввод равен 10, он будет добавлен в конце.
snoram


1

Пробел , 84 байта

[S S S T    S S S S S N
_Push_32][S N
S _Duplicate][T N
S S _Print_as_character][S N
S _Duplicate][T N
T   T   _Read_STDIN_as_integer][T   T   T   _Retrieve][S S S T  N
_Push_1][T  S S T   _Subtract][S N
S _Duplicate][N
T   S N
_If_0_Jump_to_Label_EXIT][S S S T   S S T   N
_Push_9][T  N
S S Print_as_character][S S S T N
_Push_1][T  S S T   _Subtract][N
T   S N
_If_0_Jump_to_Label_EXIT][S S S T   S T S N
_Push_10][T N
S S _Print_as_character][N
S S N
_Create_Label_EXIT]

Буквы S(пробел), T(табуляция) и N(новая строка) добавляются только как подсветка.
[..._some_action]добавлено только в качестве объяснения.

Пробельные символы содержат только три допустимых ключевых слова: пробелы, табуляции и новые строки.

Пояснение в псевдокоде:

Print space
Integer i = STDIN as integer - 1
If i is 0:
  Exit program
Else:
  Print tab
  i = i - 1
  If i is 0:
    Exit program
  Else:
    Print new-line
    Exit program

Пример работы:

Входные данные: 1

Command       Explanation                 Stack      Heap      STDIN    STDOUT   STDERR

SSSTSSSSSN    Push 32                     [32]
SNS           Duplicate top (32)          [32,32]
TNSS          Print as character          [32]                          <space>
SNS           Duplicate top (32)          [32,32]
TNTT          Read STDIN as integer       [32]       {32:1}    1
TTT           Retrieve                    [1]        {32:1}
SSSTN         Push 1                      [1,1]      {32:1}
TSST          Subtract top two (1-1)      [0]        {32:1}
SNS           Duplicate top (0)           [0,0]      {32:1}
NTSN          If 0: Jump to Label_EXIT    [0]        {32:1}
NSSN          Create Label_EXIT           [0]        {32:1}
                                                                                 error

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

Входные данные: 2

Command       Explanation                 Stack      Heap      STDIN    STDOUT   STDERR

SSSTSSSSSN    Push 32                     [32]
SNS           Duplicate top (32)          [32,32]
TNSS          Print as character          [32]                         <space>
SNS           Duplicate top (32)          [32,32]
TNTT          Read STDIN as integer       [32]       {32:2}    2
TTT           Retrieve                    [2]        {32:2}
SSSTN         Push 1                      [2,1]      {32:2}
TSST          Subtract top two (2-1)      [1]        {32:2}
SNS           Duplicate top (1)           [1,1]      {32:2}
NTSN          If 0: Jump to Label_EXIT    [1]        {32:2}
SSSTSSTN      Push 9                      [1,9]      {32:2}
TNSS          Print as character          [1]        {32:2}             \t
SSSTN         Push 1                      [1,1]      {32:2}
TSST          Subtract top two (1-1)      [0]        {32:2}
NTSN          If 0: Jump to Label_EXIT    []         {32:2}
NSSN          Create Label_EXIT           []         {32:2}
                                                                                 error

Программа останавливается с ошибкой: выход не определен.
Попробуйте онлайн (только с пробелами, вкладками и новыми строками).
Выводит пробел, за которым следует табуляция.

Вход: 3(или выше)

Command       Explanation                 Stack      Heap      STDIN    STDOUT   STDERR

SSSTSSSSSN    Push 32                     [32]
SNS           Duplicate top (32)          [32,32]
TNSS          Print as character          [32]                          <space>
SNS           Duplicate top (32)          [32,32]
TNTT          Read STDIN as integer       [32]       {32:3}    3
TTT           Retrieve                    [3]        {32:3}
SSSTN         Push 1                      [3,1]      {32:3}
TSST          Subtract top two (3-1)      [2]        {32:3}
SNS           Duplicate top (2)           [2,2]      {32:3}
NTSN          If 0: Jump to Label_EXIT    [2]        {32:3}
SSSTSSTN      Push 9                      [2,9]      {32:3}
TNSS          Print as character          [2]        {32:3}             \t
SSSTN         Push 1                      [2,1]      {32:3}
TSST          Subtract top two (2-1)      [1]        {32:3}
SSSTSTSN      Push 10                     [1,10]     {32:3}
TNSS          Print as character          [1]        {32:3}             \n
NSSN          Create Label_EXIT           []         {32:3}
                                                                                 error

Программа останавливается с ошибкой: выход не определен.
Попробуйте онлайн (только с пробелами, вкладками и новыми строками).
Выводит пробел, за которым следует вкладка, за которой следует новая строка.


1

Brain-Flak , 118 байт

({}<(((((((((((()()()()()){}){}){})())(([][][])){}{}())()())([][][])[]{})()())[][][][][])()())>){({}<({}<>)<>>[()])}<>

Попробуйте онлайн!

# Push stuffs under the counter
({}<(((((((((((()()()()()){}){}){})())(([][][])){}{}())()())([][][])[]{})()())[][][][][])()())>)

# While True
{
    # Decrement the counter
    ({}<

        # Toggle a character
        ({}<>)<>
    >[()])
}

# Display alternate stack
<>

Это печатает дополнительные нулевые байты для 9 и 10
Джо Кинг,



1

Haskell , 22 байта

(`take`"';,=\"@\\`|~")

Попробуйте онлайн!

Спасибо @Angs за обнаружение ошибок ключевых слов.

Я чувствовал, что это может быть короче, если генерировать строку вместо ее явного определения, но я не могу найти диапазон из 10 последовательных символов ASCII, которые являются ключевыми словами Haskell (я нашел некоторые из них близкие, если вы посчитаете ключевые слова расширения языка). Если он есть, вы можете уменьшить его до 15 байт, заменив %его начальным символом:

(`take`['%'..])

Без символических ключевых слов:

Haskell , 58 байт

(`take`words"of in do let then else case data type class")

Попробуйте онлайн!


!не зарезервировано, например let a!b=a+b, хорошо
Angs

Ой, ты прав. Исправлены обе части, так asкак также является действительным идентификатором.
user9549915

.также не зарезервированы - ни один из других операторов в прелюдии, как, например, и +т. д. - см. это
Angs

1

C (gcc) , 62 60 байт

-2 благодаря GPS

f(n){puts("autocasecharelseenumgotolongvoidint do"+40-4*n);}

Попробуйте онлайн!

Я имею в виду ... не было никаких требований по разделению ключевых слов.

В случае, если я неправильно прочитал - или вас больше интересует нечто большее в духе вопроса - вот альтернативная версия с разделительными пробелами:

C (gcc) , 69 байтов

f(n){puts("auto case char else enum goto long void int  do"+50-5*n);}

Попробуйте онлайн!


Вам нужны два пробела после do?
Джо Кинг

@JoKing Да, иначе можно написать мусорные символы.
gastropner

Вы можете обрезать пробелы после, doесли вы используете строковые функции вывода. 69 байт: Tio
GPS


1

Такси, 509 байтов

"[]a lrnsew" is waiting at Writer's Depot. Go to Post Office: w 1 l 1 r 1 l. Pickup a passenger going to The Babelfishery. Go to The Babelfishery: s 1 l 1 r.Pickup a passenger going to The Underground.Go to Writer's Depot: n 1 l, 1 l, 2 l.Pickup a passenger going to Chop Suey.Go to Chop Suey: n, 3 r, 3 r.[a]Pickup a passenger going to Post Office.Go to Post Office: s 1 r 1 l 2 r 1 l.Go to The Underground: n 1 r 1 l.Pickup a passenger going to The Underground.Go to Chop Suey: n 2 r 1 l.Switch to plan "a".

Это берет жестко запрограммированную строку в верхней части и печатает «n» символов из нее, а затем выдает ошибки с ошибкой: «ошибка: не найдено исходящих пассажиров».

Строка содержит:

  1. [и ]символы, используемые для объявления плана
  2. a используется в синтаксисе «Пикап пассажира ...».
  3. Символ пробела, который требуется для разделения частей синтаксиса
  4. lи r, сокращение от «левый» и «правый», используется, чтобы сказать водителю, какой путь повернуть.
  5. n, s, e, И wчетыре направления.

Я считаю, что все это считается одним символом ключевых слов. Ungolfed:

"[]a lrnsew" is waiting at Writer's Depot.
Go to Post Office: west, 1st left, 1st right, 1st left.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south, 1st left, 1st right.
Pickup a passenger going to The Underground.
Go to Writer's Depot: north, 1st left, 1st left, 2nd left.
Pickup a passenger going to Chop Suey.
Go to Chop Suey: north, 3rd right, 3rd right.
[print character]
Pickup a passenger going to Post Office.
Go to Post Office: south, 1st right, 1st left, 2nd right, 1st left.
Go to The Underground: north, 1st right, 1st left.
Pickup a passenger going to The Underground.
Go to Chop Suey: north, 2nd right, 1st left.
Switch to plan "print character".

1

J 15 байт

[:u:46,"0~65+i.

Попробуйте онлайн!

Предоставляет массив строк A.вJ. .

Пунктирные слова в J действуют как встроенные (такие как a.или A.) или управляющие структуры (такие как if.или do.), или просто выдают орфографическую ошибку. Ни один из них не может быть использован в качестве идентификатора.

Менее интересно, 15 байт

{.&'!#$%^*-+=|'

Попробуйте онлайн!

Дает некоторые из 10 однобайтовых глаголов.


1

Bash и shell используют 20 байтов

compgen -b|head -$1

Вы можете сохранить это в файле с разрешениями на выполнение (встроенными) и запустить его в bash, например:

$ ./builtins 5
 .
 : 
 [
 alias 
 bg  

Выводит первые N встроенных модулей.

Если вы используете какую-то оболочку, отличную от bash, вам понадобится строка shebang #! / Bin / bash в начале файла, для + 12b


1

QBasic, 60 байт

INPUT n
?LEFT$("CLS FOR DEF RUN DIM PUT GET SUB END IF",n*4)

Я считаю, что этот ответ лучше всего соответствует духу вопроса: выводить алфавитно-зарезервированные ключевые слова с пробелами между ними. Я не думаю, что символические операторы действительно считаются «словами» в QBasic, но для полноты вот 30-байтовый ответ с использованием операторов:

INPUT n
?LEFT$("+-*/\^=><?",n)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.