C ++ 템플릿 함수를 인수로 전달하는 규칙을 찾고 있습니다. 이것은 C ++에서 지원하는 예제입니다. #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int temp=0; T(temp); std::cout << "Result is " << temp << std::endl; } int main() …
함수형 프로그래밍에 대한 다양한 기사를 읽는 동안 'Functor'라는 용어를 몇 번 보았지만 저자는 일반적으로 독자가 이미 그 용어를 이해한다고 가정합니다. 웹을 둘러 보면 지나치게 기술적 인 설명 ( Wikipedia 기사 참조 ) 또는 매우 모호한 설명 (이 기관 교육용 웹 사이트의 Functors 섹션 참조 )이 제공되었습니다. 누군가가 용어를 친절하게 정의하고, …
타입 클래스 X가 무엇인지 누군가에게 설명하면서 정확히 X 인 데이터 구조의 좋은 예를 찾기 위해 고심하고 있습니다. 따라서 다음에 대한 예를 요청합니다. Functor가 아닌 타입 생성자. Functor이지만 형식이 아닌 형식 생성자입니다. Applicative이지만 Monad가 아닌 형식 생성자입니다. Monad 인 타입 생성자. 나는 모나드에 대한 많은 예가 있다고 생각하지만, 이전 예와 관련이있는 …
닫은. 이 질문은 스택 오버플로 지침을 충족하지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 질문을 업데이트하여 스택 오버플로에 대한 주제 입니다. 휴일 3 년 전 . 이 질문을 개선하십시오 F #은 OCaml에서 파생되었지만 누락되거나 추가 된 주요 항목은 무엇입니까? 특히 OCaml 학습에 사용할 수있는 리소스가 F #을 배우려는 …
map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b 기본적으로 동일한 작업을 수행하는 세 가지 다른 기능이있는 이유는 무엇입니까?
이것은 람다 함수 질문이 아니며 람다를 변수에 할당 할 수 있다는 것을 알고 있습니다. 우리가 선언 할 수 있지만 코드 내부에 함수를 정의하지 않는 이유는 무엇입니까? 예를 들면 : #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 + bar; } // This …
나는 카테고리 이론에서 모나드에 대해 읽었습니다. 모나드의 한 정의는 한 쌍의 인접 펑터를 사용합니다. 모나드는 이러한 펑터를 사용하는 왕복으로 정의됩니다. 명백하게 부속은 범주 이론에서 매우 중요하지만, 부속 펑터 측면에서 Haskell 모나드에 대한 설명은 보지 못했습니다. 누군가 그것에 대해 생각 했습니까?
저는 Haskell을 처음 접했고 펑터와 응용 펑터에 대해 읽고 있습니다. 좋아, 나는 펑터와 그것들을 어떻게 사용할 수 있는지 이해하지만, 응용 펑터가 왜 유용한 지, 하스켈에서 어떻게 사용할 수 있는지 이해하지 못합니다 . 응용 펑터가 필요한 이유를 간단한 예를 들어 설명해 주시겠습니까?
Applicativetypeclass을 나타내는 LAX monoidal 펑 해당 입력 기능의 범주에 직교 monoidal 구조를 유지. 다시 말해서, (,)단일체 구조 를 형성하는 표준 동 형사상이 주어지면 : -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) assoc_bwd :: (a, (b, c)) -> ((a, b), c) lunit_fwd …