例如:
// f :: Int -> Int -> Int
fn f(a:Int) -> Int -> Int{
a
}
let g = f(0) // g :: Int -> Int
println(g(1)) // output:0
这样的好处是可以便捷地产出各种函数进行组合,让程序的书写更加灵活。就像是Haskell那样。
只是询问一下这样子可不可行。希望不会打扰到你们。我个人挺喜欢Moonbit这个项目的。
例如:
// f :: Int -> Int -> Int
fn f(a:Int) -> Int -> Int{
a
}
let g = f(0) // g :: Int -> Int
println(g(1)) // output:0
这样的好处是可以便捷地产出各种函数进行组合,让程序的书写更加灵活。就像是Haskell那样。
只是询问一下这样子可不可行。希望不会打扰到你们。我个人挺喜欢Moonbit这个项目的。
目前我们没有直接支持Curry的语法。但你可以这样
fn make_adder(n: Int) -> (Int) -> Int {
fn (x) {
return x + n
}
}
fn init {
let adder = make_adder(1)
println(adder(0))
}
请问未来有添加类似语法的计划吗?
我们目前的态度是倾向于不添加,柯里化对代码可读性的影响比较大。但不排除未来改变想法的可能
好的,感谢您的回复。