코틀린으로 좀 작성해보는건데 어려움 initial 로 n개의 T를 받고 block 으로 (T) -> (T) -> (T) 가 n 번 반복된 (매개변수가 n개인 함수의 커링) 을 받고 block 에다가 initial 을 넣어줌 이걸 구현할 때 n 이 몇번인지 컴파일러가 알수가 없어서 제네릭으로 block의 타입을 구현 못하겠음 ex) 2, 3, 4 를 받았고 a + b + c 함수를 넣어줘서 9가 리턴됨
inline fun reified T 로 선언해서 vararg Int, (Int) -> T 로 한다음 T 가 Int 면 리턴하고 함수일때 재귀하게 하면 되지않을까싶음
재귀제네릭 + either 패턴매칭? Arrow kt 필요하긴한데