1. Top » 
  2. スポンサー広告 » 
  3. 【Haskell】高階関数と型の定義について
  4. プログラミング全般 » 
  5. Haskell » 
  6. 【Haskell】高階関数と型の定義について

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

【Haskell】高階関数と型の定義について

過去の記事
【Haskell】とても簡単なHaskellプログラムについて/strong>
【Haskell】標準入力(stdin)を読み込むために
【Haskell】結構頻繁に使う関数などの話



Haskell記事の第四回目になります。
特徴的なmap関数、すごい!

 main = do cs <- getContents
        putStr $ expand cs

 expand :: String -> String
 expand cs = map translate cs
 translate :: Char -> Char
 translate c = if c == '\t' then '@' else c



関数の型宣言・・・引数や返値の型

 関数名 :: 第一引数 -> 第二引数 -> ・・・ -> 返値




==演算子
型 → (==) :: a -> a -> true
 同じ型のものを比較して一致ならtrue


map関数
型 → map :: ( a -> b ) -> [a] -> [b]
 型aに対して型bを返す関数とaのリストを受け取って
 全てのaの中身に関数を作用した結果bのリストを返す
 これを高階関数と呼ぶ(関数自体を渡す関数)
 ※関数の返値を渡すのとは違う


if
使い方 → if 条件式 then 式1 else 式2
 条件式がTrueなら式1、Falseなら式2を返す


以上を元にした動作の分解
動作の分解
 

 map translate "abc\n"
 map translate [ 'a' , 'b' , 'c' , '\n' ]
 [(translate 'a'),(translate 'b'),(translate 'c'),(translate '\n')]
 ['a','b','c','\n']
 "abc\n"



関連記事
スポンサーサイト

Comment

コメントフォーム
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTMLタグは使用できません
(任意) ID生成と編集に使用します
(任意) 非公開コメントにする

Page Top

Trackback

Trackback URI
http://parabola0.blog86.fc2.com/tb.php/37-4ff74ebe この記事にトラックバックする(FC2ブログユーザーのみ)

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。