我在Haskell的书里读到关于单台变压器的书。
那Monad呢?组成两种具有Monad实例的任意数据类型没有问题。我们在使用时已经看到了这一点,两者都定义了Monad实例。然而,这样做的结果并没有给你一个Monad。这个问题归结为缺乏信息。这两种类型的组合都是多态的,所以当您试图为Monad编写绑定时,您试图将两个多态绑定组合成一个组合绑定。事实证明,这是不可能的:{-# LANGUAGE InstanceSigs #-}
我在java和kotlin中有两个几乎相同的代码。return val t = s[j] s[i] = t}
java代码通过了大量输入的测试,但是kotlin代码会导致StackOverFlowError,除非我在kotlin中的helper函数之前添加了tailrec关键字。我想知道为什么这个函数在java中工作,在tailrec中也适用于柯林,而在没有tai