紹介マニアMoinMoin

概要

関数型プログラミング言語。インデントが意味を持ちます。

サイト

http://www.haskell.org/

学習サイト

Write Yourself a Scheme in 48 hours:A Haskell Tutorial

The Haskell Cheatsheet

Real World Haskell

Emacs

http://projects.haskell.org/haskellmode-emacs/

http://github.com/kazu-yamamoto/ghc-mod

関連サイト

Haskell(sampou.org):日本語解説サイト

About Haskell(日本語訳):About Haskellの翻訳

A Gentle Introduction to Haskell, Version 98

プログラム工学VI 講義資料(2002-9-25) Haskell 入門

Haskellで遊ぶ

檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

インストール

実装としてはいくつかありますがここでは ghc をインストールします。

The Glasgow Haskell Compiler

ライセンスはBSDL。ghcというコンパイラとghciというインタプリタ両方があります。わたしはこちらを利用しています。

バイナリは GHC: Download version 6.12.1 から取得できます。

X86OSXGhc - GHC - Trac

GHC はまだ 64bit に対応していないため、32bit フラグを明確に付与しておいた方が良いです。

/usr/bin/ghcを編集した方が良いでしょう。

#!/bin/sh
exedir="/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.1"
exeprog="ghc-stage2"
executablename="$exedir/$exeprog"
datadir="/Library/Frameworks/GHC.framework/Versions/612/usr/share"
bindir="/Library/Frameworks/GHC.framework/Versions/612/usr/bin"
topdir="/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.1"
executablename="$exedir/ghc"
exec "$executablename" -B"$topdir" ${1+"$@"}

を以下に修正します。

#!/bin/sh
exedir="/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.1"
exeprog="ghc-stage2"
executablename="$exedir/$exeprog"
datadir="/Library/Frameworks/GHC.framework/Versions/612/usr/share"
bindir="/Library/Frameworks/GHC.framework/Versions/612/usr/bin"
topdir="/Library/Frameworks/GHC.framework/Versions/612/usr/lib/ghc-6.12.1"
executablename="$exedir/ghc"
exec "$executablename" -optl-arch\ i386 -optc-m32 -opta-m32 -optl-m32 -B"$topdir" ${1+"$@"}

cabal-install

HackageDB: cabal-install-0.8.0

curl -O http://hackage.haskell.org/packages/archive/mtl/1.1.0.2/mtl-1.1.0.2.tar.gz
tar xvfz mtl-1.1.0.2.tar.gz
cd mtl-1.1.0.2
runhaskell Setup.hs configure  -p --ld-options="-arch i386" --gcc-option=-m32 --user
runhaskell Setup.hs build
runhaskell Setup.hs install
cd ..
curl -O http://hackage.haskell.org/packages/archive/parsec/3.1.0/parsec-3.1.0.tar.gz
tar xvfz parsec-3.1.0.tar.gz
cd parsec-3.1.0
runhaskell Setup.hs configure  -p --ld-options="-arch i386" --gcc-option=-m32 --user
runhaskell Setup.hs build
runhaskell Setup.hs install
cd ..
curl -O http://hackage.haskell.org/packages/archive/network/2.2.1.7/network-2.2.1.7.tar.gz
runhaskell Setup.hs configure  -p --ld-options="-arch i386" --gcc-option=-m32 --user
runhaskell Setup.hs build
runhaskell Setup.hs install
cd ..
curl -O http://hackage.haskell.org/packages/archive/HTTP/4000.0.9/HTTP-4000.0.9.tar.gz
tar xvfz HTTP-4000.0.9.tar.gz
cd HTTP-4000.0.9
runhaskell Setup.lhs configure  -p --ld-options="-arch i386" --gcc-option=-m32 --user
runhaskell Setup.lhs build
runhaskell Setup.lhs install
cd ..
curl -O http://hackage.haskell.org/packages/archive/zlib/0.5.2.0/zlib-0.5.2.0.tar.gz
tar xvfz zlib-0.5.2.0.tar.gz
cd cd zlib-0.5.2.0
runhaskell Setup.hs configure -p --ld-options="-arch i386" --gcc-option=-m32 --user
runhaskell Setup.hs build
runhaskell Setup.hs install
cd ..
curl -O http://haskell.org/cabal/release/cabal-install-0.8.0/cabal-install-0.8.0.tar.gz
tar xvfz cabal-install-0.8.0.tar.gz
cd cabal-install-0.8.0
runhaskell Setup.hs configure -p --ld-options="-arch i386" --gcc-option=-m32 --user
runhaskell Setup.hs build
runhaskell Setup.hs install
# cabal のデータベースを更新します
~/.cabal/bin/cabal update

日本語

日本語はEUC-JPであれば通りますが、2文字として数えますし、実際は日本語処理されているわけでないです。

cabal install -p utf8-string

で utf8-string をインストールすれば UTF-8 が利用できるようになります。

HOC

HOC: A Haskell to Objective-C Binding

hoc - Project Hosting on Google Code

GHC 6.10.4 を利用して Mac OS X 10.6 でコンパイルしようとすると#3522 (conflicting Block.h on Snow Leopard) – GHCのエラーが出る。

直しても #3353 (Add CLDouble support) – GHC のエラーがでる。

cabal install parsec-3.0.1
cabal install fgl
cabal install HUnit
svn co http://hoc.googlecode.com/svn/trunk/hoc

Setup.hs 84行目あたりを書き変える

-- customConfig :: (Either GenericPackageDescription PackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo
customConfig :: (GenericPackageDescription, HookedBuildInfo) -> ConfigFlags -> IO LocalBuildInfo

runhaskell Setup.hs configure -p --ld-options="-arch i386" --gcc-option=-m32 --user

エディタ

http://leksah.org/

http://code.google.com/p/yi-editor/

http://haskell.org/haskellwiki/Yi

http://hackage.haskell.org/package/yi

http://code.haskell.org/yi/README

かならず $HOME/.cabal/bin にパスを通しておく。パスが通ってないと alex が存在しないエラーが出る

cabal install cabal-install
cabal update
cabal install base-4.2.0.2
cabal install alex
cabal install yi

2010-02-11 現在 data-accessor のバージョンがあわないためインストールできないので以下のようにする。ghc-6.10.4 でないと動作しない。

cabal install yi --constraint="data-accessor < 0.2.1" --constraint="template-haskell < 2.4"

ターミナル内では動作する。Cocoa で動作させたい場合は HOC のインストールが必要。

GHC 6.12 で動作させたい場合は以下を参照

http://code.google.com/p/yi-editor/issues/detail?id=307

設定

参考書籍

programming musings » Blog Archive » A Haskell bookshelf

The Haskell School of Expression: Learning Functional Programming Through Multimedia

Haskell: The Craft of Functional Programming (International Computer Science Series): 洋書

Introduction to Functional Programming Using Haskell (Prentice Hall Series in Computer Science): 洋書

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門: 本

入門Haskell―はじめて学ぶ関数型言語: 本

参考サイト

Haskellメモ - sakurai

Pragmatic Haskell

Haskell - 結城浩

The RWiki - Haskell

Haskell Code Fragment

Haskell

Haskell のお勉強

SourceForge.net: jaskell

Haskellの入出力

Haskell のお勉強

JJinuxLand: Haskell: Microsoft Haskell PDF

J C++ for Haskeller:すっごい大変そう


CategoryProgramLanguage

紹介マニアMoinMoin: Haskell (last edited 2015-03-09 12:47:17 by sakito)