首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala中的Haskell函数类型签名

Scala中的Haskell函数类型签名
EN

Stack Overflow用户
提问于 2015-04-08 17:04:04
回答 1查看 188关注 0票数 3

我有一个Haskell函数,我想把它转换成Scala。

在Haskell中,您的功能如下:

代码语言:javascript
复制
trifecta :: (a->b) -> (b->c) -> (c->d) -> a -> d

关于在Scala中转换这类类型签名,我还没有在网上找到任何信息。

这是我迄今所做的,但我不太确定这是否正确。

Scala代码:

代码语言:javascript
复制
def trifecta[A,B,C,D](a: (A=>B), b: (B=>C), c: (C=>D), d: A): D = { 

    trifecta(a, b, c, d)
}

如果你们能帮我澄清这件事,我会非常感激的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-08 17:08:07

您的类型很好,但是您的实现不会终止。你可能是说:

代码语言:javascript
复制
def trifecta[A,B,C,D](a: A=>B, b: B=>C, c: C=>D, d: A): D = c(b(a(d)))

如果您希望像Haskell版本那样对其进行匆忙处理,则需要单独列出参数列表:

代码语言:javascript
复制
def trifecta[A,B,C,D](a: A=>B)(b: B=>C)(c: C=>D)(d: A): D = c(b(a(d)))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29520957

复制
相关文章

相似问题

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