여러 인수 함수를 벡터를 받아들이는 새로운 함수로 결합하는 관용구가 있는지 궁금합니다. 새 함수는 첫 번째 인수에 첫 번째 함수를 적용해야합니다. 여러 상황에서 유용하다고 생각합니다. 예를 들어, 단순한 일차원 함수를 사용하여 점의 x, y 및 z 좌표를 변환 할 수 있습니다. 저는 다음과 같이 스스로 구현할 것입니다.하지만 표준 API에 이미 비슷한 것이
하자 내가 다음 함수를 정의 할 필요가있다 말한다. ord) 하스켈은 대개 아주 단순한 언어이므로 여분의 대괄호를 사용하는 것은 자연스럽지 않습니다 (나에게). 브래킷을 도입 할 필요가있는 사람은 누구나 알고 있습니까? 나는 우리가 어디에서 소셀 연산자를 사용 하는지를 기억할 수 없다. 편집 네이트/다니엘 의견 후 모두 당신이 올바른지 확인합니다. 내 실제
세 가지 하스켈 함수를 만들고 싶습니다. a, b 및 c입니다. 각 기능에는 하나의 인수가 있습니다. 인수는 세 가지 기능 중 하나입니다. 인수가 다음 기능 a을 반환 기능 a 경우 : 나는이 문제를 가지고 기능 a을하고 싶습니다. 인수가 함수 b 인 경우 함수 b을 반환합니다. 인수가 함수 c이면 a 함수를 반환하십시오. 여기 내가 기능 a을 위해 원하는
"모나드"기능 A → 메가로 B A 기능 A → 사용 : 나는 기본적으로 모나드 혼합있어 그래서 ghci> let divideTenBy x | x == 0 = Nothing | otherwise = Just (10/x)
ghci> let composed = divideTenBy <=< return . (*10) <=< divideTenBy <=< retu
왜 함수 합성 기법 및 길이에 따라 haskell이 여러 개의 다시 쓰기 규칙을 필요로합니까? 이것을 피할 수있는 방법이 있습니까? 다음 코드 주어진 예를 들어 , ... {-# RULES
"f/f" forall a. f (f a) = 4*a
#-}
f a = 2 * a
이 test1 = f (f 1)
작동 그러나 우리는 test2 =
그래서, 나는 foldl.foldr 합성을 이해하려고 노력하면서 내 뇌를 정말로 튀기고있다. (foldl.foldr) (+) 1 [[1,2,3],[4,5,6]]
결과는 정말 여기에서 무슨 일이 일어나고 있는지 22 :하지만, 여기 은 예입니다? 제게 이것은 어떤 일이 일어나고있는 것처럼 보입니다 : foldl (+) 1 [6,15]. 의심의 여지가있는
double adapter(double) 함수를 갖고 싶다고 가정하면 boost::function<double(...)> functor으로 구성하여 boost::function<double(...)> functor2을 생성하는 일반적인 방법은 functor2(...) == adapter(functor(...))입니까? 특히, C++ 11을 사용하지 않고 이