![]() |
1
6
以防它不在斯卡拉斯:
另一种方法是使用一些开销较大但语法更好的方法。
|
![]() |
2
5
我不认为箭头或任何其他特殊类型的计算在这里是有用的。毕竟,你是用正常值计算的,你通常可以
纯净的
进入特殊计算类型的计算(使用
然而,一个非常简单的箭头是
例如,你可以把电话转到
现在您可以这样编写代码:
这个
但正如我所说的,写这篇文章可能根本没有理由。 |
![]() |
3
4
这里是基于箭头的解决方案,用scalaz实现。这需要后备箱。 将箭头抽象与简单的旧函数结合使用并不会获得巨大的成功,但这是在转到Kleisli或Cokleisli箭头之前学习它们的一种好方法。
|
![]() |
4
3
嗯,我抬头看了看
Hoogle
对于像中的类型签名
Thomas Jung's
answer
还有
在哪里?
如果你更换的话,这几乎是一样的
所以,现在,我怀疑它不存在。我发现有一个更通用的类型签名,所以我也尝试了它:
这一次一无所获。 编辑: 现在我觉得我一点也不远了。例如,考虑:
函数
所以,假设你写了
你可以写的
像这样使用:
这真的更好地与货币和无点符号。:-)但是让我们尝试一下隐式:
然后你可以写
非常接近。我还没有找到从中删除类型限定符的任何方法,尽管我怀疑这是可能的。我是说,不走托马斯的路。但也许
是
路。事实上,我想
|
![]() |
5
1
这个表达法可以写得非常优美 Factor programming language -函数组成是 这个 做事情的方式,大多数代码都是以无点的方式编写的。堆栈语义和行多态性促进了这种编程风格。这就是问题的解决方案在因素中的样子:
我们感兴趣的是组合器
让我们试着把这个解决方案翻译成scala。 首先,我们定义了一个保留arity-2的组合器。
和一个
此外,
现在把这个机器投入使用!
这种方法在scala中看起来并不特别优雅,但至少它向您展示了一种做事情的方法。 |
![]() |
6
1
有一种很好的方法
想象一下
然后你可以用读卡器Monad:
哈斯克尔等效物为:
或者…
|
![]() |
nanounanue · 使用python和高级操作符的函数管道 6 年前 |
![]() |
Zazaeil · 这个特定的递归可以用尾部优化的方式重写吗? 6 年前 |
![]() |
corvid · 使用ramda通过变量进行升序/降序 6 年前 |
![]() |
CodingNow · Scala:如何制作多种方法并逐一应用? 6 年前 |