とびだせHaskellの森1

4,715 views

Published on

サイバーエージェントの社内Haskell勉強会の資料

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,715
On SlideShare
0
From Embeds
0
Number of Embeds
3,094
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • とびだせHaskellの森1

    1. 1. とびだせHaskellの森第一章 はじめの第一歩
    2. 2. 自己紹介• 島崎抄子@shokos• アメーバ事業本部• 2012/11入社
    3. 3. ghci• REPL• 関数の実行や定義ができる• :q で終了• :l で.hsファイル読み込み
    4. 4. ghci例1• Prelude> 2 + 15• Prelude> succ 4 succはインクリメントする関数• Prelude> min 4 5 minは比較して小を返す関数
    5. 5. ghci例2• Prelude> div 10 3• Prelude> 10 `div` 2 バッククオートで囲むと中置関数にな る!
    6. 6. ghci例3• Prelude> succ 9 + max 5 4 + 1 結合の優先度はsucc, max > +
    7. 7. .hsファイル作成 • エディタを開いて下記を写経 • baby.hsで保存doubleMe x = x + xdoubleUs x y = x * 2 + y * 2
    8. 8. .hsファイル実行• Prelude> :l baby.hs• *Main> doubleMe 3• *Main> doubleUs 4 6
    9. 9. リスト1• Prelude> let hoge = [1,2,3]• Prelude> hoge ++ [4,5,6] ++ はリストの結合• Prelude> aiu ++ eo 文字列はcharのリスト
    10. 10. リスト2• Prelude> 2 : [1,2,3]• Prelude> a : hoge :は先頭に結合する
    11. 11. リスト操作1• Prelude> [1,2,3] !! 2• Prelude> head [1,2,3]• Prelude> tail [1,2,3]• Prelude> init [1,2,3]• Prelude> last [1,2,3]
    12. 12. リスト操作2• Prelude> null [1,2,3]• Prelude> null []• Prelude> sum [1,2,3]• Prelude> elem 4 [1,2,3,4]• Prelude> 5 `elem` [1,2,3,4]
    13. 13. レンジ1• 列挙できるリスト• Prelude> [1..20]• Prelude> [ a .. t ]• Prelude> [2,4..18]
    14. 14. レンジ2• Prelude> take 5 [1, 3..]• Prelude> take 6 (repeat 2) 無限リストの操作ができる!
    15. 15. リスト内包表記1• Prelude> [x*2 ¦ x <- [1..10]]• Prelude> [x*2 ¦ x <- [1..10], x*2 >= 12] [出力¦条件]
    16. 16. リスト内包表記2• 18の約数を求めたい• Prelude> [x ¦ x <- [1..18], 18 `mod` x == 0]
    17. 17. タプル1• 複数の違う型を格納できる• Prelude> (1, hoge , 5.3)• Prelude> (2, 3)• Prelude> (2, [ hoge , foo ])
    18. 18. タプル2• ペアで使うのが一般的• Prelude> fst (1, 2)• Prelude> snd (1, 2)
    19. 19. zip• 2つのリストをペアタプルにする• Prelude> zip [1,2,3] [ a , i , u ]• Prelude> zip [1..] [ hoge , foo ]

    ×