Concurrency 需要解释CML的语法吗
有人能解释一下单元格数据类型的语法吗:Concurrency 需要解释CML的语法吗,concurrency,sml,ml,Concurrency,Sml,Ml,有人能解释一下单元格数据类型的语法吗: datatype 'a request = READ | WRITE of 'a datatype 'a cell = CELL of { reqCh : 'a request chan, replyCh : 'a chan } 我不确定你到底被什么弄糊涂了,但这应该可以解释一下这些类型 数据类型'a cell有一个构造函数cell,其参数是一个带有两个字段的记录: reqCh,它是一个'a request chan,和replyCh,它是一个
datatype 'a request = READ | WRITE of 'a
datatype 'a cell = CELL of {
reqCh : 'a request chan,
replyCh : 'a chan
}
我不确定你到底被什么弄糊涂了,但这应该可以解释一下这些类型 数据类型
'a cell
有一个构造函数cell
,其参数是一个带有两个字段的记录:reqCh
,它是一个'a request chan
,和replyCh
,它是一个'a chan
您没有提供chan
的定义,因此我无法真正澄清这一点。但是,
“请求
有两个构造函数,读取
和写入
。前者没有论据,而
第二个参数的类型为'a
例如,给定某个类型的t
、一个t请求chan
x
、一个t chan
y
,您可以有如下内容:
val aCell : t cell = CELL {reqCh = x, replyCh = y}
我无法理解这个请求:“一个请求,一部分。它说明了reqCh的数据类型是什么?这意味着,
reqCh
是一个t chan
,其中类型t
是s request
,对于某些类型s
。由于您尚未定义什么是chan
,因此我无法进一步解释。如果你想要一个<代码>请求> /代码>的例子,请考虑<代码> Read < /Cord>。code>READ是针对任何类型的s
的s请求WRITE 5
是一个int请求
WRITE“foo”
是一个字符串请求。那么,reqCh属于“Write 5 chan”类型意味着什么呢?请求
不是写入5
。但是,WRITE 5
是类型为int request
的值。您似乎不太了解ML中的类型系统是如何工作的,因此我建议您阅读或使用类似的信息。要了解什么是chan
类型,请查看。t chan
是处理传递类型为t
的消息的类型,因此s request chan
是处理传递类型为s request
的消息的类型。