CoffeeScript에는 Haskell의 $ 연산자와 비슷한 개념이 있습니까? 주제에 대해 아무 것도 찾을 수없는 것 같지만 GitHub에 관한 문제를 한 번 본 것 같습니다. 내가하고 싶은 무엇
이
이foo = bar $ baz 1 2
대신 위의 GitHub의 문제를 게시 읽기
foo = bar (baz 1 2)
CoffeeScript에는 Haskell의 $ 연산자와 비슷한 개념이 있습니까? 주제에 대해 아무 것도 찾을 수없는 것 같지만 GitHub에 관한 문제를 한 번 본 것 같습니다. 내가하고 싶은 무엇
이
이foo = bar $ baz 1 2
대신 위의 GitHub의 문제를 게시 읽기
foo = bar (baz 1 2)
의 쓰기, 크게 두 번 이상 논의 된 것으로 보인다. 그러나 결론은 없지만 그것이 포함될 것으로 보이는 것은 아닙니다.
한 명의 사람 alexkg은 커피 용 his own fork에 <-
이라는 기능을 구현했습니다.
하스켈에서 정확히 $
이 무엇을하는지 혼란 스러울 것 같습니다.
에서 볼 수 있듯이 its type - (a -> b) -> a -> b
- $
은 약 2 개의 인수 만 "알고"있습니다.
따라서 foo = bar $ baz 1 2
예에서 $
은 약 baz 1 2
을 "알지 못합니다".
그룹화가 발생하는 이유는 "함수 응용 프로그램이 중절 연산자"(source)보다 우선 순위가 높기 때문입니다.
foo = bar . baz 1 2 -- also parsed as `bar (baz 1 2)`
-- because of function application's high precedence
는 따라서 유일한 $
는 두 개의 인수를 두 번째로 첫 번째 적용이다 않습니다 그래서 중위 연산자 .
를 사용하여 같은 표현은, 예를 들어, 정확히 같은 방식으로 구문 분석됩니다. Coffeescript가 고차원 함수를 허용하는 한 $
을 구현하는 것은 간단합니다. 당신이 알아 차린 나머지 행동은 하스켈 언어의 일부입니다.
https://github.com/jashkenas/coffee-script/issues/1614 – Vladimir
배관 운영자가 <| LiveScript : http://livescript.net/ – homam