fugafuga.write

日々のログ

すごいH本 part31

今年も終わりですね モジュールの続きをやっていく 各桁の数の合計が40になる最初の自然数を求める関数の実装 数値を文字列に変換 文字列をリスト化 文字を数に変換 リストの合計を計算 このように処理する。 Data.Char.digitToIntで文字を数値に変換する('0…

すごいH本 part30

モジュールを使う。の続き foldlがスタックオーバーフローを起こすことがあるのでそれを見てゆく。 *Main> foldl (+) 0 (replicate 100000000 1) *** Exception: stack overflow Haskell は遅延評価なので実際の値の計算は可能な限り後まで引き伸ばされる。 …

すごいH本 part29

モジュールを使う。の続き Data.Charを使ってシーザー暗号でメッセージを暗号化し、他人に読めないようにする関数を実装する。 シーザー暗号は、各文字をアルファベット上で一定の数だけシフトするという暗号化方法。 以下の関数を使う Data.Char.ord 文字を…

Elm ことはじめ

Elm

環境設定 Elm を入れる npm install -g elm npm install -g elm-format@exp npm install -g elm-test elm-format 使うため、elm-vim入れる GitHub - ElmCast/elm-vim: Elm plugin for Vim npm install -g elm-oracle とりあえずドリルやる GitHub - jinjor/e…

すごいH本 part28

引き続きモジュールの使用例 2つのリストを受け取り、1つめのリストが2つめのリストに含まれているかどうかを調べる関数を実装してゆく。 以下の関数を使う Data.List.tails リストを受け取り、tailsを繰り返し適用する *Main Data.List> tails "yahooooooo…

Amazon EC2インスタンスを他のアカウントに移管する

AWS

これ読むとよい Amazon EC2 インスタンスの移管 よくわからんものを調べる AMI Amazon Machine Image の略。 なにをしてくれるか インスタンスのルートボリュームのテンプレート (オペレーティングシステム、アプリケーションサーバー、アプリケーションなど…

すごいH本 part27

モジュールを使う 単語が複数含まれた文字列から各単語が何回現れるかを求めたい。 以下のモジュールと関数を組み合わせる。 Data.Listのwords 空白で区切られた単語をリストにする。 *Main Lib Data.List> words "foo bar hoge hooogle" ["foo","bar","hoge…

すごいH本 part26

クリスマス後に4℃のアクセサリが多数オークションに出品されるのはとても趣がある。 モジュール Haskell にはモジュールがある。モジュールには複数の関数と型を定義できる。 そのモジュールのうちの幾つか、または全てをエクスポートできる。 エクスポート…

すごいH本 part25

サンタさん、5000兆円ください ポイントフリースタイル この関数を sum' :: (Num a) => [a] -> a sum' xs = foldl (+) 0 xs こう書き換えられる sum' :: (Num a) => [a] -> a sum' = foldl (+) 0 fold (+) 0 はリストを受け取る関数を返すため 他の例 fn x =…

すごいH本 part24

メリークリスマス チキン食いました 関数合成 .関数を使う。 他の関数に渡す関数をその場で作るときに使う。ラムダ式でできるが、関数合成のほうが簡潔に書けるらしい。 *Main> :t (.) (.) :: (b -> c) -> (a -> b) -> a -> c 関数を2つ引数にとって引数を1…