水晶中的递归过程是否可行?
我正在尝试y-combinator用Crystal 做一个像Ruby一样的东西:
puts -> {
fact_improver = ->(partial) {
-> (n) { n.zero? ? 1 : n * partial.(n-1) }
}
y = ->(f) {
->(x) { f.(->(v) { x.(x).(v) }) }.(
->(x) { f.(->(v) { x.(x).(v) }) }
)
}
fact = y.(fact_improver)
fact = fact_improver.(fact)
fact.(100)
}.()
Run Code Online (Sandbox Code Playgroud)
crystal-lang ×1