在函数式语言中,评估函数的参数应该没有意义.
然而,即使是最简单的程序也可能不是很有用.这里代码读取两个整数并将其中一个引入其他整数:
let pwr x y =
let rec pwrx = function 0 -> 1 | y -> x * pwrx (y - 1)
in pwrx y;;
print_int (pwr (read_int ()) (read_int ()));;
Run Code Online (Sandbox Code Playgroud)
该代码,很明显,首先读取第二个参数:如果5和4被输入,结果是1024.
我认为问题在于错误处理语言而缺乏对其意识形态的理解.我该如何正确地写这些东西?在调用函数之前,我应该在单独的行中读取两个值吗?
let x = read_int();;
let y = read_int();;
print_int (pwr x y);;
Run Code Online (Sandbox Code Playgroud)
它有效,但看起来有点开销 - 不是吗?