如果我有此SML数据类型
datatype json =
Num of real
| String of string
| False
| True
| Null
| Array of json list
| Object of (string * json) list
假设我只有一个Array
拥有这个Object
,这使它成为json
列表
Array[Object[("a", Num (1.0)),("b", True)]]
如何将新的Object
限制在现有的Array
上?我尝试了一个简单的::
,但无济于事
Object[("a", Num (1.0)),("b", True)]::Array[Object[("a", Num (2.0)),("b", True)]]
这会产生错误。我是否需要为此建立自己的缺点?似乎SML列表是'a list
,应该允许json list
并与::
一起使用>
是的,这是我自己在华盛顿大学上的编程语言
上学期的作业。 This是分配。我的基本问题是我不知道如何通过递归调用将其添加到Array
中。如果我需要生成一个包含Array
的Objects
并在每次递归调用时都在该Object
的开头添加一个新的Array
,该怎么办?我见过Succ
或Cons
的示例,例如后继构造函数,但这些示例仅创建了一个递归的嵌套对象,例如
val four = Succ (Succ (Succ (Succ Zero)))
...但是这没有帮助...
如果我有此SML数据类型数据类型json =实数|字串|错误|是的空| json列表数组| (string * json)...
Array [...]
不是json list
,它是json
,并且::
不能将两个json
限制在列表中。
[在molbdnilo的帮助下,我摆脱了如何创建Array
列表的思维障碍。由于Array
也是一个构造函数,即像函数一样,我们可以在此构造函数调用内执行操作,即可以执行常规列表cons [[inside