LINUX.ORG.RU

[ocaml] В каком порядке будет вычислятся выражение?

 


0

1

Здравствуй, ЛОР! В ocaml есть общее выражение связывания let s=m in t;; Насколько я правильно понимаю порядок вычисления его таков. Вычисляется m а потом в выражении t вместо s подставляется результат его вычисления. В книге я наткнулся на пример:

let s i = let s2 j = i + j in s2;;

В каком порядке будет вычисляться это выражение?


Вообще

let s i = let s2 j = i + j in s2;;

эквивалентно

let s = (fun i -> let s2 = (fun j -> i + j) in s2);;

Не совсем понял, о каком порядке речь.

nozh
()
Ответ на: комментарий от nozh

Если для выражения:

let x=2*2 in x+1;; Сначала вычисляем 2*2 let x=4 in x+1;; Потом в выражении x+1 подставляем 4. 4 + 1;; Итого 5;

let s i = let s2 j = i + j in s2;;

Сначала будет вычисляться этот кусок?

let s i = (let s2 j = i + j) in s2;; или этот let s i = let (s2 j = i + j) in s2;;

milton
() автор топика
Ответ на: комментарий от milton

Второе. Сам in при этом относится к внутреннему let.

dmsh
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.