11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacでHaskellを触ってみるメモ 0.1

Last updated at Posted at 2014-03-10

Haskell
haskell.jpg
http://www.haskell.org/haskellwiki/Haskell

Haskellをお薦めされたので触ってみますメモ。

Haskellは関数型で(つまりすべてが関数呼びだしで処理される)、
静的な暗黙的型付けで(型はコンパイラによって確認され、明示的に宣言する必要はない)、
遅延評価(必要となるまで処理されない)の言語です。

なるほど…わからん。

##インストール
Homebrew で ghc(Glasgow Haskell Compiler) をDL.
結構時間かかるので放置推奨。

$ brew install ghc
$ brew install haskell-platform

##起動
GHCiはGHCの対話環境
ghciコマンドで起動してハロワする。

$ ghci
Prelude> putStrLn "harowa"
harowa
Prelude> 1+2
3
Prelude> 4 ^ 2
16
Prelude> (1-5)^2
16
Prelude> "harowa"
"harowa"

GHCiは行全体を一つの式だと解釈し、それを評価する。式は複数の行に渡っていてはいけない。

:quit あるいは短縮形の:qでGHCiを離脱。

Prelude> :quit

##奇数を求めてみる。

Prelude> take 3 [1,3..]
[1,3,5]
Prelude> take 5 [1,3..]
[1,3,5,7,9]
Prelude> print (1 < 2)
True
Prelude> print (2 < 1) 
False

##型の指定
型を指定するときは::

Prelude> 1 :: Int
1
Prelude> 1 :: Double
1.0

##リスト
[]を用いる.

Prelude> [1,2,3]
[1,2,3]
Prelude> [1 .. 5]
[1,2,3,4,5]
Prelude> [1 .. 7]
[1,2,3,4,5,6,7]
Prelude> [1,3 .. 9]
[1,3,5,7,9]
Prelude> [1,3 .. 10]
[1,3,5,7,9]
Prelude> map (+2) [1 .. 7]
[3,4,5,6,7,8,9]

##スクリプト

拡張子「hs」はHaskellスクリプトであることを示す。
test.hs

hello.hsを作ったとする。

hello.hs
main = putStrLn "hello,world!"

ターミナルでファイルの場所に移動して、

$ ghc hello.hs

それから

$ ./hello
hello,world!

で、出る。

GHCはhello.hsというソースファイルをコンパイルし、
hello.oというオブジェクトファイルとhello.hiというインタフェースファイルを生成する。
次にこのオブジェクトファイルをGHC付属のライブラリとリンクし、
Unix/Linux/Macならhello、Windowsならhello.exeという実行ファイルを作成する。

とりあえずここまで。
詳しい入門は以下を参照のこと。

#Haskell入門メモ
お気楽 Haskell プログラミング入門
http://www.geocities.jp/m_hiroi/func/haskell.html
Haskell 入門に役立つサイト
http://mymemo.weby117.com/develop/haskell/haskell_1.html
Haskell のお勉強
http://www.shido.info/hs/index.html
ウォークスルー Haskell
http://walk.wgag.net/haskell/index.html
本物のプログラマはHaskellを使う
http://itpro.nikkeibp.co.jp/article/COLUMN/20060915/248215/

#参照元
Mac に Homebrew で Haskell 入れて HelloWorld
http://qiita.com/amay077/items/f2f7f1324ca5ea296dbb
栄光のグラスゴーHaskellコンパイルシステム利用の手引き
http://www.kotha.net/ghcguide_ja/7.0.4/
ウィキペディア Haskell
http://ja.wikipedia.org/wiki/Haskell
10分で学ぶHaskell
http://www.haskell.org/haskellwiki/10分で学ぶHaskell

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?