小编sal*_*lc2的帖子

什么是Scala标准API中的IO Haskell Monad等价物?

我知道在IO运算符的Scalaz中有一些几乎相同的实现putStrLn :: String -> IO (,getLine :: IO String但是我的意思是Scala标准API为什么没有这样的等价物?我知道Scala不是Haskell的纯语言,并且有副作用,但我认为这种数据类型是如此描述性和有用.我不知道Try,Option还是Either会做的工作.

haskell functional-programming scala io-monad

6
推荐指数
2
解决办法
212
查看次数

Scala Cats或Scalaz类型类scanLeft之类

我想知道如果有一个typeclassScalaz它提供了一个操作是这样的:

def scan[G[_],A,B](zero: B)(g: G[A],f: (A,B) => B):G[B]
Run Code Online (Sandbox Code Playgroud)

或者,如果存在这样的运算符的某种数学定义(类似于Monadfor bind/flatMap).

这样做的想法是typeclass将二进制函数应用于类型构造函数并获取相同类型的构造函数,但使用不同的类型参数(二进制函数返回的相同类型).

我认为与scanLeftScala标准库集合类似.

functional-programming scala scalaz scala-cats

4
推荐指数
2
解决办法
243
查看次数

给定一个函数管道(foo,bar,baz)(1,2,3),你如何在javascript中实现它等同于baz(bar(foo(1,2,3))

我正在学习javascript.我遇到了这个问题并尝试使用javacript中的currying来解决它但是无法正确解决它.

给定一个函数pipe(),它将几个函数作为参数并返回一个将其参数传递给第一个函数的新函数,然后将结果传递给第二个函数,然后传递给第三个函数,依此类推,返回最后一个函数的输出.所以给出:pipe(foo, bar, baz)(1, 2, 3)例如,相当于baz(bar(foo(1,2,3))).

我将如何在javascript中解决这个问题?

javascript functional-programming currying

2
推荐指数
1
解决办法
766
查看次数