Это полезная схема? - PullRequest
       3

Это полезная схема?

0 голосов
/ 12 января 2019

Правильно ли написана эта функция из моих лекционных заметок?

(define foo (λ (f) (+ (f 1) (f 2))))

(foo 3) не работает, и любые другие аргументы говорят, что ожидают 1 аргумент. Я предполагаю, что лектор имел в виду:

(define foo (λ (f) (+ f f)) )

Насколько я знаю (f 1) не является правильным способом сказать что-либо в схеме, но если первое действительно является правильной функцией, может ли кто-нибудь дать мне пример допустимого ввода?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Обновление: я нашел этот пример, поэтому функция верна как есть. Хотя на самом деле я не уверен, что здесь происходит.

(определить foo (λ (f) (+ (f 1) (f 2))))

(foo (λ (x) (* x 2)))

Выход: 6

Редактировать: несмотря на то, что я печатал, я в конце концов понял синтаксис. Если параметр f является функцией, то (f 1) будет означать f с вводом единицы, и тогда этот пример имеет смысл. Должен ли я удалить вопрос, вероятно, никому не нужен?

0 голосов
/ 12 января 2019
(define foo (λ (f) (+ (f 1) (f 2))))

в порядке. Он принимает функцию f в качестве входа. Вы можете назвать это так:

(define g (lambda (x) (* x 10)))
(foo g)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...