나는 Haskell을 배우기 위해 노력하고 있으며 내가 작성한 함수의 오류를 처리하는 세 가지 방법을 발견했습니다. 간단히 쓸 수 있습니다 error "Some error message.". 예외가 발생합니다. Maybe SomeType반환하려는 것을 반환하거나 반환하지 못할 수있는 return 함수를 가질 수 있습니다 . 내 함수 return을 Either String SomeType사용하여 오류 메시지 또는 처음에 반환하라는 메시지를 …
이것에 대한 이론적 이유 (유형 확인이나 형식 유추를 결정할 수 없게 될 것 같은) 또는 실제적인 이유 (너무 제대로 구현하기가 어려운가)가 있습니까? 현재, 우리는로 물건을 포장 할 수 newtype와 같은 newtype Pair a = Pair (a, a) 그리고 Pair :: * -> * 그러나 우리는 같은 것을 할 수 없습니다 …
Haskell의 맥락에서 Y 조합자를 설명 할 때, 일반적으로 간단한 구현은 재귀 유형으로 인해 Haskell에서 유형 검사를하지 않습니다. 예를 들어, Rosettacode의 : The obvious definition of the Y combinator in Haskell canot be used because it contains an infinite recursive type (a = a -> b). Defining a data type (Mu) …
예전에는 Java 개발자 였지만 최근에 Haskell 팀에 합류했습니다. 자바 세계에서 여러 팀이 작업하는 대규모 프로젝트가있는 경우 일반적인 접근 방식은 Maven과 같은 아티팩트 서버를 사용하여 개발을 쉽고 빠르게하는 것입니다. Ant, Maven, Gradle과 같은 수많은 빌드 도구는 프로젝트를 빌드하고 jar 파일을 아티팩트 서버에 업로드 할 수 있습니다.이 파일은 팀의 다른 팀이 고통없이 …
벡터와 행렬을 다루는 라이브러리를 작성한다고 가정 해보십시오. 호환되지 않는 차원의 연산이 컴파일 타임에 오류를 생성하도록 차원을 유형으로 구울 수 있습니까? 예를 들어 도트 제품의 서명을 다음과 같습니다. dotprod :: Num a, VecDim d => Vector a d -> Vector a d -> a 여기서 d유형에는 단일 정수 값 (이 벡터의 …
최근에 Learn Your Haskell for Great Good 가이드 를 겪어 왔으며 실제로 다음과 같이 Project Euler Problem 5 를 해결하고 싶었습니다 . 1에서 20까지의 모든 숫자로 균등하게 나눌 수있는 가장 작은 양수는 무엇입니까? 주어진 숫자를 다음 숫자로 나눌 수 있는지 여부를 결정하는 함수를 먼저 작성하기로 결정했습니다. divisable x = all …
Haskell은 이미 다른 유형 (C ++의 템플릿 프로그래밍과 유사)에 비해 유형을 매개 변수화 할 수 있다는 것을 알고 있지만 Haskell이 종속 유형을 지원하는지 여부에 따라 값보다 유형을 매개 변수화 할 수 있는지 궁금합니다. 종속 유형을 사용하면 정수에 대해 매개 변수화 된 유형 (예 : 크기 n의 벡터, 크기 n x …
잠김 . 이 질문과 주제는 주제가 다르지만 역사적 의미가 있기 때문에이 질문과 답변은 잠겨 있습니다. 현재 새로운 답변이나 상호 작용을받지 않습니다. AS 및 A 수준 수학 사양과 같은 요구 사항이있는 클래스에 수학을 가르치는 데 관여합니다. 수업은 일반적으로 수학 과제에 적용되는 컴퓨터 소프트웨어의 예를 제공하지만, 일반적으로 mathlab, mathematica 또는 derive와 같은 …
휴무 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . Happstack , Snap 및 Yesod 와 같은 Haskell을위한 몇 가지 웹 프레임 워크가 있으며 아마도 몇 가지 더 …
지속성을 처리하기 위해 명령 처리기를 사용하는 패턴은 IO 관련 코드를 가능한 한 얇게 만드는 순수 기능 언어에 어떻게 맞습니까? 객체 지향 언어로 도메인 기반 디자인을 구현할 때는 명령 / 핸들러 패턴 을 사용하여 상태 변경을 실행 하는 것이 일반적 입니다. 이 디자인에서 명령 처리기 는 도메인 개체 위에 위치하며 리포지토리 …
나는 최근에 기능 프로그래밍, 특히 Haskell과 F #에 대해 더 깊이 연구 해 왔습니다. 인터넷 검색 후 더 유명한 기능 언어 (Scala, F # 등)의 벤치 마크 비교를 찾을 수 없었습니다. 하이브리드라는 점을 감안할 때 일부 언어 (Scala가 염두에 두는 것)에 반드시 공평하지는 않지만 어떤 운영 및 전체에서 어떤 성능을 …
최근에 Haskell의 기록 문제, 특히 필드 이름의 고유성에 대해 다시 한 번 넘어졌습니다. (이것은 고통이다 ...) SPJ와 Greg Morrisett의 Haskell 레코드에 대한 제안을 이미 읽었 지만 마지막 업데이트는 2003 년입니다. SPJ와 Mark Jones의 Haskell 을 위한 Lightweight Extensible Records 라는 또 다른 논문 은 더 오래되었습니다. 1999 년 Haskell 워크숍에서 …
나는 Haskell을 배우고 운동으로 이진 트리를 만들고 있습니다. 정기적 인 이진 트리를 만들었으므로 자체 균형 조정에 맞게 조정하고 싶습니다. 그래서: 어느 것이 가장 효율적인가요? 어느 것이 가장 구현하기 쉬운가? 어느 것이 가장 자주 사용됩니까? 그러나 결정적으로, 당신은 어느 것을 추천합니까? 토론이 가능하기 때문에 여기에 있다고 가정합니다.
내가 겪고있는 학습 문제에서 적용, 작성 등의 작업을 수행하는 함수에 대한 typeclass가 필요하다는 것을 깨달았습니다. 함수의 표현을 함수 자체처럼 취급하는 것이 편리하므로 함수를 암시 적으로 해석하는 인터프리터를 사용하고 함수를 작성하면 새로운 설명이 도출됩니다. 함수에 대한 유형 클래스가 있으면 특수한 종류의 함수에 대한 유형 클래스를 파생시킬 수 있습니다. 필자의 경우에는 뒤집을 …