假设我想要将下面的无类型代码转换为有类型的球拍。这些函数的灵感来自SICP,在SICP中,它们展示了如何完全从函数构造数据结构。接下来,first的类型应该是(: first (All (A B) (-> (-> Number (U A B)) A)))。但是,在实现函数时,我们现在不能直接调用(p 1),因为我们需要某种类型的事件类型,以确保first只返回A类型。将first的返回<
最近,我开始认为我希望能够扩展现有的类型(无论是内置的-还是我自己的类型),例如: And of bexp * bexp| Xorof bexp * bexp现在,假设我想向该类型添加一个Nop变量,但仅用于新类型-类似于继承。嘿,这些应该是代数数据类型,对吧?那么为什么不这样做呢:...but这不是