«haskell» 태그된 질문

Haskell은 강력한 정적 타이핑, 지연 평가, 광범위한 병렬 처리 및 동시성 지원 및 고유 한 추상화 기능을 갖춘 기능적 프로그래밍 언어입니다.

1
연속 모나드를 왼쪽 및 오른쪽 인접 요소로 분해하는 방법은 무엇입니까?
State monad는 Product (Left-Functor) 및 Reader (Right-Representable)로 분해 할 수 있습니다. Continuation Monad를 분해하는 방법이 있습니까? 아래 코드는 확인을 입력하지 않는 내 시도입니다. -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type (<-:) o i = i -> o -- I …

1
raku의 모듈에서 Haskell을 Prelude 모듈처럼 사용하십시오.
일부 부품으로 도면 패키지를 작성하고 있으며 연산자와 데이터 유형이 흩어져 있습니다. 그러나 사용자가 매번 해당 모듈을 추가하는 것을 원하지 않습니다. 예를 들어, Point클래스, Monoid역할 및 Style클래스가 다른 경로에 있기 때문에 상당히 지저분 합니다. unit module Package::Data::Monoid; # $?FILE = lib/Package/Data/Monoid.pm6 role Monoid {...} unit module Package::Data::Point; # $?FILE = lib/Package/Data/Point.pm6 …
11 haskell  raku 

1
`coerce`에 의한 역할과 혼란스러운 행동
나는 유형을 가지고 있으며 Id a실수로 강요되는 것을 막으려 고 Id Double합니다 Id Int. 유형 역할을 올바르게 이해하면 다음을 컴파일해서는 안됩니다. {-# LANGUAGE RoleAnnotations #-} import Data.Coerce (coerce) type role Id nominal newtype Id a = Id String badKey :: Id Int badKey = coerce (Id "I point to a …
11 haskell  roles  coerce 

2
F #에서 임의의 중첩 수준 목록을 합산
int임의의 중첩 목록의 합계를 반환하는 F # 함수를 만들려고합니다 . 즉. a list<int>, a list<list<int>>및 a 에서 작동 합니다 list<list<list<list<list<list<int>>>>>>. Haskell에서 나는 다음과 같이 쓸 것입니다 : class HasSum a where getSum :: a -> Integer instance HasSum Integer where getSum = id instance HasSum a => HasSum [a] where …
10 haskell  f# 

2
Haskell의 기존 유형에 대한 설명
Haskell의 기존 유형을 이해하려고하는데 PDF를 발견했습니다. http://www.ii.uni.wroc.pl/~dabi/courses/ZPF15/rlasocha/prezentacja.pdf를 . 지금까지 이해 한 내용을 아래에서 수정하십시오. 존재 유형은 포함하는 유형에 관심이없는 것처럼 보이지만 패턴 일치는 일부 유형이 있으며 유형 지정 또는 데이터를 사용하지 않는 한 유형이 무엇인지 알 수 없습니다. 유형을 숨기고 싶을 때 (예 : 이기종 목록의 경우) 또는 컴파일 타임에 …

1
정량화 된 구속 조건을 가진 Ord 도출 (forall a. Ord a => Ord (fa))
정량화 된 제약 조건으로 Eq (A f)잘 파생 될 수 있습니까? 그러나 Ord (A f)를 얻으려고하면 실패합니다. 제약 조건 클래스에 수퍼 클래스가있을 때 정량화 된 제약 조건을 사용하는 방법을 이해하지 못합니다. Ord (A f)수퍼 클래스가있는 클래스와 다른 클래스를 어떻게 파생 합니까? > newtype A f = A (f Int) > …

1
Haskell의 대괄호 기능이 실행 파일에서 작동하지만 테스트에서 정리되지 않는 이유는 무엇입니까?
나는 하스켈의 아주 이상한 행동을보고 있어요 bracket함수가 다르게 행동 여부에 따라 있습니다 stack run또는 stack test사용됩니다. Docker 컨테이너를 만들고 정리하는 데 두 개의 중첩 된 괄호가 사용되는 다음 코드를 고려하십시오. module Main where import Control.Concurrent import Control.Exception import System.Process main :: IO () main = do bracket (callProcess "docker" ["run", …

1
술어 함수로 패턴을 사용하는 편리한 방법이 있습니까?
최근에 술어 함수를 다른 함수에 전달해야하는 상황이 발생했습니다. 필자가 자주 찾는 논리는 본질적으로 "이 값이이 패턴과 일치합니까?"입니다. 패턴 일치는 선언, do블록 및 목록 이해 에서 선호되는 것처럼 보이지만 술어를 취하는 많은 함수가 있습니다. a -> Bool여기서 패턴을 전달하는 것이 매우 편리합니다. 예를 들어, takeWhile, until, find, span, 등 지금까지 나는 …
10 haskell 

1
완전히 종속적 인 연결 만들기
연결에 대한 좋은 사실은 방정식에서 두 가지 변수를 아는 경우입니다. a ++ b = c 그런 다음 세 번째를 알고 있습니다. 나는 기능적으로 의존성을 사용하기 위해이 아이디어를 내 자신의 concat에서 포착하고 싶습니다. {-# Language DataKinds, GADTs, FlexibleContexts, FlexibleInstances, FunctionalDependencies, KindSignatures, PolyKinds, TypeOperators, UndecidableInstances #-} import Data.Kind (Type) class Concatable (m …

4
Haskell의 순수한 기능 및 부작용 이해-putStrLn
최근에는 함수형 프로그래밍에 대한 지식을 넓히고 싶었 기 때문에 Haskell을 배우기 시작했으며 지금까지는 정말 사랑한다고 말해야합니다. 현재 사용중인 리소스는 Pluralsight의 'Haskell Fundamentals Part 1'코스입니다. 불행히도 다음 코드에 대한 강사의 특정 인용문을 이해하는 데 약간의 어려움이 있으며 여러분 이이 주제에 대해 밝힐 수 있기를 바랍니다. 동반 코드 helloWorld :: IO () …
10 haskell 

1
목록에서 마지막이지만 두 번째 요소를 찾을 때 왜 '마지막'을 사용 하는가?
리스트에서 마지막이지만 두 번째 요소를 찾는 3 가지 함수가 아래에 있습니다. 사용하는 last . init것이 나머지 것보다 훨씬 빠릅니다. 이유를 알 수없는 것 같습니다. 테스트를 위해 입력 목록 [1..100000000](1 억)을 사용했습니다. 마지막 것은 거의 즉시 실행되는 반면 다른 것은 몇 초가 걸립니다. -- slow myButLast :: [a] -> a myButLast …
10 haskell 

3
고정 된 최소 길이 목록을 총체적으로 우아하게 사용하려면 어떻게해야합니까?
현재 다음과 같은 기능을 처리하고 있습니다. foo = (\(a:b:c:d:e:f:_) -> foobar a b c d e f) . (++ repeat def) 다시 말해, 목록이 주어지면 처음 6 개의 요소를 무언가에 사용하고, 목록의 길이가 6 개 미만인 경우 def누락 된 요소 의 독립형으로 사용 합니다. 이것은 합계이지만 그 조각은 (같은 map …


1
이 수동으로 정의 된 HasField 인스턴스에서“제한 트릭”이 작동하지 않는 이유는 무엇입니까?
렌즈 와 GHC 를 사용하는이 이상한 코드가 있습니다 . {-# LANGUAGE DataKinds, PolyKinds, FlexibleInstances, UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Main where import Control.Lens import GHC.Records data Glass r = Glass -- just a dumb proxy class …


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.