https://github.com/JasonShin/fp-core.rs
fp-core 보면 partial application도 구현 한것 같은데.
예를 들어서
zip : (List a, List b) -> List (a,b)
라는 함수가 List a 하고 List b를 없애고 List (a,b)를 만드는 함수라 해보자.
이거를 currying 하면
zip : List a -> List b -> List (a,b)
인데, 여기에 list_a 를 partial application해서 List b -> List (a,b) 를 얻으면, 이건 1번밖에 호출 못하는 함수잖아? 한번 호출하고 나면 list_a를 써버리니까.
그러니까 좀 더 정확한 type은 !a를 a의 uniqueness type 버전이라 할때
zip : List a -> !(List b -> List (a,b))
가 되야되는거 아닌가?
rust나 fp-core에서 이런것도 표현이 됨?
FnOnce - dc App
ㄷㄷ 땡큐
FnOnce가 함수객체를 value로 먹어서 호출하고나면 못씀
아 Copy까지 달려있으면 FnOnce도 여러번 써지겠다