Схема вложенной лямбда-функции

63
4

Я новичок в Scheme. Я нашел этот вопрос на экзамене MIT 1 для лекции SICP.

Какое значение и тип для -

((lambda (a) (lambda (b) (+ (sqrt a) (sqrt b)))) 5)

Мне сложно понять, как работает эта функция. Я действительно смущен параметром b. Только 5 передается в качестве параметра внешней лямбда - функции, то какое значение имеет b взять для внутренней лямбда - функции?

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

спросил(а) 2021-01-25T18:55:04+03:00 5 месяцев назад
1
Решение
76

Вы правы, что только внешняя форма лямбды применяется к аргументу 5. Затем он возвращает свое тело с заменяются 5, так что было бы вернуться a

(lambda (b) (+ (sqrt 5) (sqrt b)))

которая сама по себе является функцией. Это может быть позже применено к другому аргументу, чтобы получить фактическое числовое значение.

ответил(а) 2021-01-25T18:55:04+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема