인자에 f Box<FnOnce(T)->U> 주고어떻게 call 하고 싶은데영 불편하네Scala가 정말 훌륭한듯의외로 Go도 func(int) int 이런 식으로 인자를 넘겨주면알아서 잘 하는데
이유는 1. 크기가 정해진 인자만 받을 수 있고, 2. 클로져의 크기는 정해지지 않기 때문인데 (enclosing하는 환경 때문에). 의도는 알겠지만 불편함. FnBox라는 게 있긴 한데 이런 걸 써야한다는 것 자체가 영 어색함
https://rust-lang-nursery.github.io/edition-guide/rust-2018/trait-system/impl-trait-for-returning-complex-types-with-ease.html#impl-trait-and-closures
새로나온 impl 키워드를 써보삼
여기서는 예시로 클로져를 리턴할 때에 대해서만 나와있는데 실제로는 인자로 받을 때도 다른 트레잇과 마찬가지로 impl 키워드 사용 가능할거임
Future같은 애들도 저거쓰면 편함