История изменений
Исправление kipar_2024, (текущая версия) :
На Crystal:
alias Adder = Proc(Int32, Adder)
def make(acc : Int32) : Adder
return ->(y : Int32) do
puts("acc(#{acc}) + #{y}")
make(acc + y)
end.as(Adder)
end
def print_sum(x : Int32) : Adder
make(x)
end
print_sum(10).call(20).call(30).call(40)
Исправление kipar_2024, :
На Crystal:
alias Adder = Proc(Int32, Adder)
def make(acc : Int32) : Adder
return ->(y : Int32) do
puts("acc(#{acc}) + #{y}")
make(acc + y)
end.as(Adder)
end
def print_sum(x : Int32) : Adder
make(x)
end
print_sum(10u8).call(20).call(30).call(40)
Исходная версия kipar_2024, :
На Crystal:
alias Adder = Proc(Int32, Adder)
def make(acc : Int32) : Adder
return ->(y : Int32) do
puts("acc(#{acc}) + #{y}")
make(acc + y)
end.as(Adder)
end
def print_sum(x : Int32) : Adder
make(x)
end
f = print_sum(10u8)
f1 = f.call(20)
f2 = f1.call(30)
f3 = f2.call(40)