Я, честно говоря, не могу поверить, что этот вызов еще не существует.
Соревнование
Напишите функцию.
Специфика
Ваша программа должна определить какую-то вызываемую функцию. Это включает в себя все, что обычно называют функцией, лямбда-функцией или подпрограммой. Все эти типы вызовов будут называться «функцией» в этом посте.
Вход в функцию необязателен и не обязателен.
Возвращаемое значение из функции также необязательно и не требуется, но управление должно возвращаться в вызывающую программу.
Функция должна быть присвоена некоторой переменной, чтобы к ней можно было получить доступ позже. Это включает в себя косвенное назначение (в большинстве распространенных языков, где объявление именованной функции автоматически добавляет имя в текущую область) и прямое назначение (назначение анонимной функции переменной напрямую).
Функция не должна быть названа.
Функция должна быть создана вами - вы не можете просто назначить функцию по умолчанию из языка для переменной.
Ни одной из стандартных лазеек , пожалуйста.
Это код-гольф , поэтому выигрывает самая низкая оценка в байтах.
Ответы:
машинный код x86 / x64, 1 байт
Монтаж:
Попробуйте онлайн! (NASM)
¯ \ _ (ツ) _ / ¯
источник
Желе , 0 байт
Попробуйте онлайн!
Монадическая ссылка, которая возвращает свой аргумент. Так как это первая функция, которая появляется в скрипте, ее можно вызвать с помощью
1Ŀ
.Спасибо @lirtosiast за указание на то, что 0-байтовая ссылка / функция будет работать в Jelly.
Т.е.
Попробуйте онлайн!
источник
<pre><code>...</code></pre>
чтобы сохранить начальные / конечные пробелы / переводы строк в кодовых блоках. Я отредактировал ваш ответ соответственно. :)Javascript, 6 байт
Включает назначение переменных. Не так много, чтобы увидеть здесь.
источник
o=_=>o
d=_=>b
b
в этом случае не определяется.Python 3 , 9 байт
Попробуйте онлайн!
источник
ZX Spectrum BASIC, 6 байтов
Hex дамп:
CE 66 28 29 3D A7
.CE
1-байтовое ключевое слово дляDEF FN
(включая завершающий пробел), аA7
1-байтовое ключевое слово дляPI
. Звоните используяFN f()
. Пример программы:Выход:
источник
Haskell , 3 байта
Этот код определяет полиморфную вызываемую функцию,
o
которая принимает один параметр типа и один параметр экземпляра класса типов. Когда эта функция вызывается, она принимает данный экземпляр класса типов, получает своегоfromInteger
члена, вызывает этого члена сInteger
значением 9 и возвращает результат.Конечно, то, что я только что описал, - это просто поведение функции Haskell
9
, а мой код просто определяет вызываемую функцию,o
которая эквивалентна9
.Теперь единственный вопрос, это
9
функция «создана вами» или «функция по умолчанию из языка»?Я думаю, что это «создано вами». Я хочу сказать, что если вы прочитаете спецификацию для Haskell, вы (я полагаю) нигде не найдете упоминания о
9
функции. Вместо этого в спецификации говорится, что вы можете создать числовой литерал, соединив одну или несколько цифр. Поэтому, написав строку цифр, я написал функцию - даже если бы я использовал только одну цифру.источник
R , 9 байт
Попробуйте онлайн!
Я думаю, что это соответствует правилам. Функция не
t
требует ввода и вывода0
. Это работает, потому что уже существует функция, называемаяt
(функция транспонирования), и она переопределяет тело функции; он не будет работать с скажемbody(a)=0
(объект не вызываетсяa
) илиbody(F)=0
(F
логический, а не функция). Я думаю, что это соответствует, потому что это все еще создано мной: я не повторно использую то, что делает предопределенная функция, просто ее имя.Я не думаю, что я когда-либо видел это, используемое игроками в R, но могут быть ситуации, когда это позволяет нам сэкономить несколько байтов на задачах, когда нам нужна вспомогательная функция.
Более стандартное решение было бы:
R 13 байт
Попробуйте онлайн!
Функция, которая не требует ввода и вывода
0
. Это на 1 байт короче, чем функция, которая не принимает никакого ввода и ничего не выводит, что было быЕсли мы попытаемся определить функцию без body (
f=function()
), R интерпретирует это как неполную команду (это может быть не так в более старых версиях R).Как указывает OganM, мы уменьшаем это до 11 байтов с
R 11 байт
Попробуйте онлайн!
что технически соответствует требованию вызова, чтобы функция была назначена некоторой переменной, так как она (эфемерно) назначена
.Last.value
.источник
function()0
должен работать для вашего второго ответа, так как функция не должна быть названа. Аккуратный трюкbody<-
, я пытался использоватьbody
и тому подобное, чтобы решить некоторые странные проблемы, связанные с языкомfunction()0
соответствует правилам этой задачи. Я был бы рад получить награду за ответ, которыйbody()="
успешно использует трюк.function()0
будет назначен,.Last.value()
хотя это будет толкать егоpryr::f(x)
если мы позволим pryr.Perl 6 , 5 байт
Попробуйте онлайн!
Создает любую лямбду, которая возвращает логическое значение не своего параметра, и назначает ее переменной
$!
.источник
C (GCC) , 5 байтов
Определяет функцию,
f
которая не принимает аргументов и технически возвращает неопределенное целочисленное значение.Попробуйте онлайн!
источник
Пробел , 7 байт
Создает подпрограмму, которая возвращает управление вызывающей стороне.
Объясняется в контексте:
Попробуйте онлайн!
источник
[Wolfram Language (Mathematica)], 1 байт
Это немного сомнительно:
Определяет
f
, который можно «вызвать», например, с помощьюf[]
которого «возвращает» выражениеf[]
источник
f
ничего не делает (кроме запоминания «Я видел»).f
») и может быть опущено. Вы можете позвонить,f[]
тем не менее, возвращая без оценкиf[]
. Тем не менее, в любом случае вы в основном играете с трюком с заменителем шаблона и не поручаете оценить функцию.Global`f
, а пустая версия не делает этого (вы можете возразить , чтоNull
присваивается%1
, ноNull
это встроенная «функция»). Но, как я уже отмечал в ответе, действительность однобайтового решения также не совсем ясна ...Forth (gforth) , 5 байтов
Это функция с именем
f
, которая ничего не делает.Попробуйте онлайн
В коде TIO я добавил нижний колонтитул
see f
, который печатает определение функции.источник
Луа , 8 байт
Попробуйте онлайн!
Определяет (глобальную) функцию
f
.Это использует
load
функцию Lua для компиляции заданной строки, которая в нашем случае оказывается пустой (пустой код является допустимым кодом), в функцию, которая делает именно то, что мы написали в ее теле: ничего.Для тех, кто интересуется, стандартное решение будет
но это длиннее (15 байт).
источник
POSIX ш, 6 байт
Использование фигурных скобок требует еще одного символа.
источник
Java, 10 байт
это должно соответствовать правилам испытания
источник
f=a->a;
это действительно так. :)Perl 5 , 7 байт
Попробуйте онлайн!
источник
Котлин , 8 байт
Пустая функция хранится в переменной f.
Назовите это используя
f()
илиf.invoke()
.источник
shortC , 1 байт
Попробуйте онлайн!
Перемещается в этот C:
источник
C (gcc) ,
1413 байтовПопробуйте онлайн!
Это определяет функцию,
f
возвращающуюint
и принимающую неопределенное число (и тип) параметров, машинный код которых содержится в строковом литерале. Символ UnicodeÃ
(хранится в памяти как0xc3 0x00 0x00 0x00
на машине с прямым порядком байтов) соответствуетret
инструкции x86, которая возвращается из функции. Для архитектуры, отличной от x86, для возврата могут потребоваться другие коды операции.gcc
может потребоваться-zexecstack
флаг, чтобы избежать сегфоута.источник
Haskell , 5 байт
Попробуйте онлайн!
источник
Tcl ,
6511 байтПопробуйте онлайн!
Включая присваивание переменной f как части байта для соответствия правилам. С этим изменением более традиционное определение ниже связывает приведенное выше определение bytecount:
источник
XSLT, 134 байта
Шаблон - самая близкая вещь, которую этот язык имеет к функции. Это определенно можно назвать; он принимает нулевые аргументы и «возвращает» пустую строку.
источник
F # (.NET Core) , 9 байт
Попробуйте онлайн!
источник
Рубин , 6 байт
Proc называется ,
f
который не принимает никаких аргументов и возвращаетnil
.Попробуйте онлайн!
источник
Python 3 , 10 байт
Попробуйте онлайн!
источник
def f():0
чтобы сохранить байт?Паскаль 23 байта
источник
AppleScript, 10
Объяснили, скомпилировали и включили вызов:
источник
Japt , 2 байта
Называется как
$U ($
._
можно заменить на@
,Ï
илиÈ
.Попытайся
источник
SmileBASIC (> = 3), 9 байт
Функция вызывается
A
.источник
DEF A*END
в SB4Wolfram Language (Mathematica) , 2 байта
Попробуйте онлайн!
К сожалению, просто
&
не работает (анонимная функция, которая ничего не делает).источник
f=#&
%1
поэтому нет необходимости в явном назначении такой переменной, какf
.