Как функции определены в схеме?

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

First:  (define res  (+ 1 1))
Second: (define res2 ((lambda (i) (* wert1 i)) 2))

Теперь, насколько я понимаю, + это имя функции и values 1,1 параметры функции. То же самое в случае секунд. Лямбда - это способ написания функций на схеме, не так ли? Поэтому я подумал, что это тоже должно быть функцией.

Мои решения говорят, что оба не функции, а ценности! Я что-то не так понял или у моих решений есть поворот?

1 ответ

Решение

Ты прав что + а также (lambda (i) ...) являются функциями. Однако это был не вопрос. Вопрос заключался в том, были ли определены значения (т.е. res а также res2) являются функциями.

res определяется как равный (+ 1 1), который называет + Функция с аргументами 1 1 (так же, как вы сказали). Результатом этого является 2, Так res равно 2, который является числом, а не функцией.

То же самое верно для определения res2: (lambda (i) (* wert1 i)) это функция. Но вы не определяете res2 быть равным (lambda (i) (* wert1 i))1, вы определяете, что он равен результату применения этой функции к аргументу 2, Таким образом, вы должны ответить, каков результат применения этой функции к этому аргументу.


1 Это будет выглядеть так:

(define res3 (lambda (i) (* wert1 i)))

И в этом случае "res3 - это функция" будет правильным ответом.

Другие вопросы по тегам