범위의 각 숫자에 제공된 값을 곱하고, 선택적으로 펑터를 사용하여 곱할 숫자에 대한 참조를 얻는 것으로 가정하십시오. template <typename TIter, typename TNumber, typename TTransformer = self_reference<iterator_traits<TIter>::value_type>>
void multiply
여러 생성자로 펑터를 만들 수 있습니까? 나는 여러 가지 방법으로 함수를 사용할 수 있기를 원합니다. 다양한 방법으로 다양한 멤버를 초기화합니다. 모든 생성자는 초기에 설정하는 데 사용됩니다. 그러나 여러 생성자가있는 펑터를 사용하여 여기서 제안하는 것보다 더 훌륭한 해결책이 있습니까? 이 재사용 수준은 내가 쓰고있는 통신선 프로토콜 인터프리터에서 매우 잘
함수 객체 : 이 멤버 함수 인 조작자()에 대한 클래스의 인스턴스이다. 은 연산자 ->가 멤버 함수 인 클래스의 인스턴스입니다. 함수 객체, 또는은 Functor (두 용어가 동의어) 단순히 : 어떤 기능 에 대한 포인터는 이 이 내 시도가 클래스의 멤버 함수입니다 그것이 마치 함수 인 것처럼 호출 될 수있는 모든 객체. 일반적인 함수는 함수 객체이므로
이 Elt.t을 사용할 수 없습니다 나는이 FOOable에 의해 정의 된 유형 'a t을 참조 할 수 있습니다 어떻게 module type FOOable = sig
type 'a t
val foo : 'a -> 'a t
end
module type FOO_FUCNTOR =
functor (Elt : FOOable) ->
내가이 서명 있다고 가정 지금 module MakeDiGraphem (C : CharS) : GraphemS with type c = C.t = struct
type c = C.t
type t = c * c
let compare (cb1, ce1) (cb2, ce2) =
let r1 = C.compare cb1 cb2
맵과 fmap의 차이점은 후자가 함수를 반환 할 수 있다는 것입니다. 나는이 http://learnyouahaskell.com의 펑터 섹션을 연구 중이며 일부 설명이 약간 명확하지 않습니다. 동일하게 다음 지도 fmap 함수 깊으 let exMap = map (+1) [1..5]
let exFMap = fmap (+1) [1..5]
기능을 돌아가는 f
아래의 코드는 컴파일되지 않습니다 : data Outcome a = Fail | Pass a deriving (Show, Eq, Ord, Functor)
myList = [Pass 33, Pass 12, Fail, Pass 45]
main = do
print $ fmap (+1) myList
이 작동하지 않는 이유가 성공적으로 = 빈 데
에서 펑 쓰기 : typedef int (*func)(int);
func make_adder(int a) {
int add(int x) {
return a + x;
}
return &add;
}
int main() {
func add_42 = make_adder(42);
// add_42(10)
: OptionT(currentFactors.values).map(_.priceHistory.toList)
currentFactors.values // Iterable[Option[A]] priceHistory // Vector[Double] 을 그러나이 오류 : could not find implicit value for parameter F: sca