kanetaiの二次記憶装置

プログラミングに関するやってみた、調べた系のものをQitaに移して、それ以外をはてブでやる運用にしようと思います。http://qiita.com/kanetai

Haskell

プログラミングHaskell第6章(再帰関数)まとめ

再帰関数定義のための5段階の工程 1:型を定義する pow :: Int a => a -> a -> a 2:場合分けをする 数値なら(0, n), リストなら([], x:xs)などで場合分けする pow a n | (n == 0) = | (n > 0) = 3:簡単な方を定義する たいていの場合、基底部の方が簡単 pow …

ソート、整列(sorting)

リポジトリ Arrays.sortに習って、a[fromIndex, toIndex)がソートされるようにしてみる。 また、javaにはswap()がないので適当に実装しておく。 public static final void xxxSort(T a[], int fromIndex, int toIndex) { ... } public static final int[] sw…

プログラミングHaskell第5章(リスト内包表記)まとめ

zip 2つのリストを取り、対応する要素をタプルにしたリストを作る。 2つのリストの長さが違う場合は、短い方のリストと同じ長さのリストとして扱う。 pairs :: [a] -> [(a,a)] pairs xs = zip xs (tail xs) -- pairs [1, 2, 3, 4] -----> [(1,2),(2,3),(3,…

プログラミングHaskell第4章(関数定義)まとめ

cons演算子「:」 既存のリストの先頭に新しい要素を追加したリストを作成する cons演算子は右結合 Prelude> :t (:) (:) :: a -> [a] -> [a] Prelude> 1 : [2, 3] [1,2,3] Prelude> 1 : (2 : (3 : [])) -- [1, 2, 3]はこれの略記 [1,2,3] Prelude> 1 : 2 : 3 …

プログラミングHaskell第3章(型とクラス)まとめ

基本型 Bool (真理値) False, True. Char (文字) シングルクォートで囲む。他の言語同様。 String (文字列) ダブルクォートで囲む。他の言語同様。 Int (固定制度整数) 固定長整数。プログラミングHaskellによると、Hugsではらしいが、 Integer (多倍長整数)…

プログラミングHaskell第2章(はじめの一歩)まとめ

標準ライブラリ(Prelude) 二項演算 除算はdiv関数を使う。通常関数は、ポーランド記号(前置記法, prefix notation)で書くが、バッククオートを入れると中置記法(infix notation)で書くことができる。 演算子の優先順位や結合の仕方は数学の慣習と同じ(累乗演…

プログラミングHaskell第1章(導入) まとめ

プログラミングHaskellでは実際のHaskellで入力する記号ではなく数学記号で記述されている。 否定とノットイコールの入力方法が慣れ親しんでるプログラミング言語とは違う。 数学記号 意味 入力方法 変換する -> クラス制約 => 以上 >= 以下 等しくない /= …

macでHaskell環境構築メモ

動機 新言語Swiftとか色々な言語でで関数型プログラミングをサポートし始めたので、ちょっとかじっておきたかった。 学ぶなら純粋関数型言語ということで、言語はHaskellにしますた。 参考書はプログラミングHaskell。 訳者のサポートページhttp://www.mew.o…