recursion-schemes

    2

    1답변

    나는 (그것이 무엇을, 참으로, 또는!) 하스켈 recursion-schemes 패키지에서이 매우 추상적 재귀 함수의 작동 방식을 이해하려고 노력하고 있어요 - this file에서 : 특히 class Functor (Base t) => Corecursive t where [...] -- | A generalized postpromor

    3

    2답변

    내 텍스트 편집기 Rasa에서 계속 작업 중입니다. 현재 뷰포트/스플릿 (vim 스플릿과 유사) 추적 시스템을 구축 중입니다. 그것은 나무로이 구조를 표현하기 위해 나에게 자연 듯 : 이것은 위대한 작품을 data Dir = Hor | Vert deriving (Show) data Window a = Split Dir Sp

    2

    1답변

    숫자의 소수 분해를 찾기 위해 작은 프로그램을 작성했습니다. main 함수를 제외하고 컴파일하는 것 같습니다. Show1 인스턴스를 찾을 수 없다는 불만이 있습니다. {-# LANGUAGE DeriveFunctor #-} module FactorAnamorphism where import Data.Functor.Foldable import Data

    1

    1답변

    다음 코드에서 cataM을 트리 하향식으로 트래버스하는 것이 가능합니다 (현재 상향식이 아닌 상향식이 아닌 방법). 는 내가 다른 foldMap를 구현해야합니다 생각하지만, 아이들이 t의 더 예를하지 않았다있는 방법 branch 이후 어린이 전에 branch 노드 자체를 처리하는 방법을? 당신은 또한 마트 료가 제공하는 기능 topDownCataM을 찾고있

    3

    2답변

    피보나치 번호 목록의 우아한 derinition이 있습니다 : fibs :: [Integer] fibs = fib 1 1 where fib a b = a : fib b (a + b) 이 recursion-schemes 라이브러리를 사용하도록 변환 할 수 있습니까? 내가 얻을 수있는 가장 가까운 완전히 다른 접근 방식 사용하는 다음 코드입니다

    2

    2답변

    안녕하세요, 하스켈의 고차 함수에 대한 숙제가 있습니다. 시작하는 데 약간의 문제가 있습니다. 첫 번째 질문에 대한 도움과 설명을 얻을 수 있다면 나머지는 끝낼 수 있다고 확신합니다. 사용 고차 함수 (map, fold, 또는 filter), 필요 람다 식을 경우, f2 같은 f1 = f2 = f1 (f2 (*) [1,2,3,4]) 5 ~> [5,10

    1

    1답변

    나는 chronomorphism으로 몇 가지 예를 어떻게 만들 수 있는지 이해할 수 없다. hylomorphism (cata, ana)에 대해서도 알고 있습니다. 또한 histo과 futu에 대해 알고 있습니다. 하지만 나는 연대기 (Tardis 모나드에서와 같은 동작)에 대한 몇 가지 예를 알지 못합니다. 는 또한 링크 https://github.com/

    2

    1답변

    부 프로젝트의 경우 현재 추상적 인 구문 트리를 처리하고 규칙에 따라 변환해야합니다 (세부 사항은 중요하지 않음). AST 자체는 중요하지 않으며 일부 형식으로 만 제한된 하위 표현식이 있음을 의미합니다. . (예를 들어, 운영자 A는 유형 B의 인 인수되지 않은 Expr를 취해야합니다 내 데이터 타입의 대폭 단순화 감소 버전은 다음과 같습니다 data E

    4

    2답변

    I recursion-schemes 라이브러리를 사용하여 다음과 같은 코드가 있습니다 let countBy = reduceBy (\case Nil -> 0 ; Cons a b -> succ b) id in countBy [42,5,5,8,8,8]로 {-# LANGUAGE LambdaCase #-} {-# LANGUAGE TypeFamilies #-} i

    6

    1답변

    목록에 비어 있지 않은 구조를 펼쳐 것은 anamorphism를 사용하여 나무 장미,하지만 마지막 요소를 추출하는 것은 불가능 보인다 실제로 불가능은 import Data.Functor.Foldable data RoseTree a = RoseNode a [RoseTree a] ana5 :: RoseTree a -> [a] ana5 = ana coa