Каков поток выполнения в следующих функциях? - PullRequest
0 голосов
/ 18 февраля 2020

Я не берусь после вызова y(k), в функции "y" что выполнить первым? параметры или тело функции. Как число 5 приходит к функции k

def k(x:Int) = x*x

def y(h:Int => Int) = h(5)

y(k)

ВЫХОД:

25

1 Ответ

4 голосов
/ 18 февраля 2020

Итак, прелесть Функционального программирования в том, что мы можем рассуждать или программировать как выражения.

Дано:

def k(x: Int) = x * x // 1.
def y(h: Int => Int) = h(5) // 2.

Тогда:

y(k) = k(5)  // By definition of y (2).
y(k) = 5 * 5 // By definition of k (1).
y(k) = 25    // By definition of multiplication.

Здесь я сделал несколько упрощений. как будто я не проверял тип, но это должно быть довольно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...