Что делает функция (lambda () 16)? - PullRequest
0 голосов
/ 22 октября 2018
(lambda () 16)

Это только возвращает #<procedure> Я думаю, что это возвращает 16 независимо от того, что мы вводим.Но я не знаю, как это доказать.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вы можете проверить свои предположения, вызвав возвращенную процедуру.Синтаксис для вызова функции или процедуры f: (f ...), где ... обозначает аргументы.Здесь нет аргументов, поэтому это будет просто (f).Вы можете протестировать вашу программу из цикла Read-Eval-Print-Loop (REPL):

> (define f (lambda () 16))
> (f)

Вы также можете просто вызвать анонимную функцию напрямую, заключив ее в скобки:

> ((lambda () 16))
0 голосов
/ 22 октября 2018

Вы можете вызвать функцию по

((lambda () 16) 17) ;; or put instead of 17 whatever
...