首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我使用Haskell编写教堂编号时,解析错误

当我使用Haskell编写教堂编号时,解析错误
EN

Stack Overflow用户
提问于 2014-04-14 04:43:01
回答 1查看 86关注 0票数 0

在这里,它是输出教堂编号的源代码。在我的编译器中,它会出现一条错误消息:

解析错误(可能是不正确的缩进或不匹配的括号)

我没有头绪。有人能帮忙吗?谢谢

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-14 04:45:19

let用于表达式和do表示法;若要在模块级别定义绑定,请删除let

代码语言:javascript
复制
r = church 0  
main = print r

但是,即使在进行了此更改之后,您也会得到一个错误,因为r的类型是Church Integer,又名(Integer -> Integer) -> Integer -> Integer,是一个函数。不幸的是,函数无法实现show,因此也无法实现print功能。如果你想在里面显示数字,你可以用

代码语言:javascript
复制
r = church 0  
main = print (r succ 0)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23052087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档