我最近完成了一门以Haskell和Agda(依赖型函数式编程语言)为特色的大学课程,并且想知道是否有可能用组合逻辑代替lambda微积分。使用Haskell,使用S和K组合器似乎可以实现这一点,从而使其变得毫无意义。我想知道阿格达相当于什么。即,是否可以在不使用任何变量的情况下使等效类型化的函数式编程语言等效于Agda? 另外,是否有可能用合并器代替量化?我不知道这是否是巧合,但是例如通用量化会使类型签名看起来像lambda表达式。有没有办法从类型签名中删除通用量化而不改变其含义?例如: forall a : Int -> a < 0 -> a + a < a 可以不花大价钱表达同一件事吗?
我无法理解Option[T]Scala的课程重点。我的意思是,我不能看到任何advanagesNone了null。 例如,考虑以下代码: object Main{ class Person(name: String, var age: int){ def display = println(name+" "+age) } def getPerson1: Person = { // returns a Person instance or null } def getPerson2: Option[Person] = { // returns either Some[Person] or None } def main(argv: Array[String]): Unit = { val p = …