2017-11-25 118 views
1

我只想在这里查看我的理解,我正在通过作为刷新的ML编程元素的函数章节工作,其中一个问题需要编写一个函数,“只需要一个整数b作为输入。 “随着问题声明似乎在暗示SML函数可以采用非结构参数吗(Ullman 8.3.4)?

structure HashFn100 = MakeHashFn(struct val i = 100 end); 

但不

structure HashFn100 = MakeHashFn(100); 

:我可以编写如下应用了仿函数。难道我和我现在的函子是错的吗?或者有没有办法将函子应用到我失踪的非结构体?不幸的是,这个练习在解决方案手册中没有答案。

回答

2

你可以写

structure HashFn100 = MakeHashFn(val i = 100) 

这是第一种形式,你表现出的语法糖。第二种是不合法的 - 从语法上讲,函子论元必须是模块(结构或标识符)或声明序列(作为结构的简写)。

相关问题