我正在尝试根据我在Haskell中编写的程序将一些指称语义编码到Agda中.
data Value = FunVal (Value -> Value)
| PriVal Int
| ConVal Id [Value]
| Error String
Run Code Online (Sandbox Code Playgroud)
在阿格达,直接翻译将是;
data Value : Set where
FunVal : (Value -> Value) -> Value
PriVal : ? -> Value
ConVal : String -> List Value -> Value
Error : String -> Value
Run Code Online (Sandbox Code Playgroud)
但是我得到了与FunVal有关的错误,因为;
值并非严格为正,因为它出现在Value定义中构造函数FunVal类型中箭头的左侧.
这是什么意思?我可以用Agda编码吗?我是以错误的方式去做的吗?
谢谢.