우분투에서 하스켈 패키지 hakyll을 빌드할 때 다음과 같이 외부 의존성을 먼저 설치해야 한다.[^1]
sudo apt install zlib1g
cabal로 빌드를 시도하면 zlib
가 없다고 안내를 해주지만 stack으로 빌드할 때는 무엇이 문제인지 파악하기 어렵다.
어떤 패키지를 GHCi에서 시험 삼아 써보고 싶을 때 다음과 같이 크게 두 가지 방법을 써왔다.
그런데 다음과 같이 입력하면 전역에 설치할 필요도 없고 새 프로젝트를 만들지 않고 패키지를 써볼 수 있다.[^1]
cabal repl --build-depends aeson
제목 / 작가 / 삽화가 / 번역가 / 출판사 / 기간 | |
올리버 트위스트 / 찰스 디킨스 / / 이정은 / 동쪽나라 / 2024년 5월 17일 ~ 2024년 5월 18일 | |
마틸다 / 로알드 달 / 퀸틴 블레이크 / 김난령 / 시공주니어 / 2024년 5월 ~ 2024년 5월 19일 | |
나니아 연대기 | |
파운데이션 |
원문 : QuickCheck: An Automatic Testing Tool for Haskell
퀵체크는 하스켈 프로그램을 자동으로 점검하는 도구이다. 개발자가 프로그램의 명세(specification) 를 입력하면 퀵체크는 무작위로 만들어진 수많은 경우에서 함수가 만족해야 하는 속성(property)이 유지되는지 점검한다. 명세는 퀵체크 라이브러리에 정의되어 있는 콤비네이터(combinator)를 이용해서 하스켈 문법으로 적는다. 퀵체크는 속성을 정의하고, 점검 데이터의 분포를 관찰하고, 점검 데이터 생성기를 정의할 수 있는 콤비네이터를 제공한다.
print("Hello World1") |
module Robot where | |
import Control.Concurrent.MVar | |
import Control.Monad.State | |
import System.Random.Stateful | |
type Robot = MVar String | |
type RunState = [String] | |
initialState :: RunState |
Red [Needs: 'View] | |
view [ | |
title "Replace Hex Data" | |
button "Binary Data" [ | |
file: request-file | |
t1/text: form file | |
] | |
t1: text 400 | |
return | |
button "Hex Table" [ |
def cycleA(x): | |
n = 2 | |
while True: | |
yield x | |
x = x + n | |
n += 1 | |
def cycleB(x): | |
ys = cycleA(1) | |
next(ys) |