Как функции определены в схеме?
Согласно моему назначению, некоторые значения, определенные ниже в нотации схемы, являются функциями. Мне нужно определить значение, если это не функция. В противном случае я должен определить, что вычисляет функция.
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 - это функция" будет правильным ответом.