Skip to content

Instantly share code, notes, and snippets.

@daneko
Created December 26, 2012 02:05
Show Gist options
  • Save daneko/4377248 to your computer and use it in GitHub Desktop.
Save daneko/4377248 to your computer and use it in GitHub Desktop.
2012/12/26の社内勉強会用俺メモ

加藤さんのGist

https://gist.github.com/4334482

hsファイルの先頭に書いておくといいかもしれない

p.37 コンパイル時の警告とか

{-# OPTIONS -Wall -Werror #-}

リスト内包表記で忘れそう

[ hoge | x <- xs , let hoge = x * 2, hoge > 100]
  • x<-xs をジェネレータという
  • ジェネレータのあとで変数hogeが束縛されているので、 ジェネレータ内ではhogeは使えない

カリー化によって省略できる記法

P.77 foldl/r の説明あたりで

foo a = bar b a
foo = bar b

再帰脳を鍛える (4章)

以下を見ずに実装できるように

replicate 3 5 -- return [5,5,5]

take 3 [5,4,3,2,1] -- return [5,4,3]

reverse "hoge" -- return "egoh"

zip [1,2,3] [5,6] -- return [(1,5),(2,6)]

elem 3 [1,2,3] -- return True

クイックソートの実装

カリー化とか部分適応とか

以下を見ずに実装できるように

zipWith (+) [1,2,3] [4,5,6] -- return [5,7,9]

zipWith replicate [1,2,3] "hoge" -- return ["h", "oo", "ggg"]

map (*2) [1,2,3] -- return [2,4,6]

filter (\x -> x `mod` 2 == 0) [1,2,3,4] -- return [2,4]

コラッツ数列

  • 1なら終了
  • 偶数なら2で割る
  • 奇数なら3倍して1足す
  • で生成される過程を配列にする
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment