我只是想在这里检查一下我的理解,我正在通过 ML编程元素的仿函数章节进行刷新,其中一个问题需要编写一个仿函数&#34 ;只取整数 b 作为输入。"我可以编写一个仿函数,其应用如下:
$cert
但不是
structure HashFn100 = MakeHashFn(struct val i = 100 end);
正如问题陈述似乎暗示的那样。这个措辞让我感到困惑,而我现在的仿函数是正确的,还是有办法将仿函数应用到我缺少的非结构中?不幸的是,这个练习在解决方案手册中没有答案。
答案 0 :(得分:2)
你可以写
structure HashFn100 = MakeHashFn(val i = 100)
这是您展示的第一种形式的语法糖。第二个不合法 - 语法上,仿函数参数必须是模块(结构或标识符)或声明序列(作为结构的简写)。