在这里,它是输出教堂编号的源代码。在我的编译器中,它会出现一条错误消息:
解析错误(可能是不正确的缩进或不匹配的括号)
我没有头绪。有人能帮忙吗?谢谢
module Main where
type Church a = (a -> a) -> a -> a
church :: Integer -> Church Integer
church 0 = \f -> \x -> x
church n = \f -> \x -> f (church (n-1) f x)
let r = church 0
main = print (r)发布于 2014-04-14 04:45:19
let用于表达式和do表示法;若要在模块级别定义绑定,请删除let
r = church 0
main = print r但是,即使在进行了此更改之后,您也会得到一个错误,因为r的类型是Church Integer,又名(Integer -> Integer) -> Integer -> Integer,是一个函数。不幸的是,函数无法实现show,因此也无法实现print功能。如果你想在里面显示数字,你可以用
r = church 0
main = print (r succ 0)https://stackoverflow.com/questions/23052087
复制相似问题