2 回答
3
这是您正在寻找的代码。您的缺少允许默认规则的预处理器指令。并使用错误的引号字符。
-- Use default rules
{-# OPTIONS_CYMAKE -F --pgmF=currypp --optF=defaultrules #-}
lookup :: k -> [(k,v)] -> Maybe v
lookup key (_++[(key,value)]++_ ) = Just value
lookup'default _ _ = Nothing
test_positive = lookup 2 [(2,3)] == Just 3
test_negative = lookup 1 [(2,3)] == Nothing
默认规则有多种用途。在搜索失败后重新获得控制权是一种特别有用的方法,因为您无法用相等来检查表达式是否失败。
于 2018-11-19T03:19:25.183 回答
2
如果删除选项“-F”,则不会调用解释行为的预处理器。
权限错误是由于并非所有可能的 Curry 程序中间表示都在 Ubuntu 包中预编译。不幸的是,CurryPP 的“默认规则转换器”需要这些中间表示之一。
Ubuntu/Debian 软件包仅用于使用 Curry 的内核。对于扩展和更高级的工具,我建议手动安装 PAKCS,例如,来自
https://www.informatik.uni-kiel.de/~pakcs/download.html的当前版本
如果你已经有 Ubuntu,一个简单的make
应该是充足的。
于 2018-11-23T08:33:48.423 回答