小编obl*_*bla的帖子

关键字如何在OCaml中运行

我知道如何in在OCaml中使用关键字.我的问题是编译器执行表达式的顺序.

例如,让我们采用以下代码:

let v = expr1 in expr2
Run Code Online (Sandbox Code Playgroud)

编译器首先查看expr2,然后当它v出现expr2时替换vexpr1?或者首先,它评估expr1然后应用expr2

你可能想知道我为什么要问这个奇怪的问题.这是因为我不明白以下代码的工作原理:

let rec some_function = function 
   | [] -> () 
   | t::q when (*here put a condition*) -> some_function q
   | t::q -> (*some operations here*); some_function q
in 
let s = (*some list*)
some_function s 
Run Code Online (Sandbox Code Playgroud)

这段代码是如何工作的?我的意思是当我们有递归调用some_function q然后程序直接进入in块并应用其他递归调用some_function s

ocaml

0
推荐指数
1
解决办法
35
查看次数

标签 统计

ocaml ×1