2009-07-01から1ヶ月間の記事一覧

リスト

リストの構造 リスト=同じ型のデータが任意の数並んだデータ ※レコードは、複数のデータが決められた個数だけ並ぶ。 空のリスト Ocamlでは空のリストはで表現する。(要素が0個のリスト) 空のリストに要素を加えるには 追加する要素 :: [] と書く。 (* 曜日の…

さらにレコード

「プログラミングの基礎」の目標であるメトロネットワーク最短路問題にレコードを応用する。 必要な情報の定義 まず、メトロネットワークの構造のうち、駅名を定義する。 駅名の情報は 駅名 ひらがな ローマ字表記 所属する路線名 の4つの情報を持つレコード…

レコード

レコード 前回は、内部構造を持つデータとして「組」というのをやった。 以下のような形で記述することで、hogeのとった点数は80であるというデータを表す。 ("hoge", 80) ただ、これだと常に(名前, 点数)の順番、要素の数を守らないといけないのと 単純にデ…

組とパターンマッチ

組 : 複数のデータを並べて1つのデータにしたもの。 今までのような単純な数値や、文字列ではなく それらを組み合わせて1つのデータを形成する。2次元平面上の座標のような感じで # (3.14, 2.71) ;; - : float * float = (3.14, 2.71) という、float * float…

エラーの種類

構文のエラー 構文がおかしいとき。 # let x 3 ;; Error: Syntax error 変数を宣言してるのに「=」がない。「;;」にアンダーラインが現れる。 他にも、if文でthenが無いとか、()の対応がおかしい場合はこれ。 未定義の変数 # 3 + a ;; Error: Unbound value …

条件分岐

条件分岐 if 条件 then 式 else 式 条件はbool型 then,elseの式は同じ型の持つ必要がある #if 2 < 1 then 3 else 4 ;; - : int = 4 #if "true" = then 3.14 else 2.72 ;; Error: This expression has type string but is here used with type bool #if "a" =…

関数の作り方

前回の復習。 関数の定義 作成する関数の目的を考える -> 関数の型(引数、戻り値)を決める 入力と出力、テストプログラムを書く 関数の本体を作る 2.で作ったテストで動作を確認 ※1.はコメントとしてちゃんと書いておく そういえば、「プログラミングの基礎…

関数。の続き

関数の型 # let f x = (x *. x) *. 22. ;; val f : float -> float = <fun> val f : float -> float = fは float型xを受け取ったら float型の値を返す 関数である と読む。 上の例では、float型xを受け取ったら、float型の値を返すので 関数fはfloat型ぽいけれど</fun>…

変数の補足

変数の話で、「らしい」を連発してますが 時給を表す変数を書き換えるだけで良くなる。 と、これだと、定数を定義してるのと変わらないけれども。。 関数型言語での変数は基本、書き換えることが出来ない「らしい」。 1回定義したら、そのまま。 上の例で「w…

プログラミングの基礎-2

変数 # let 変数名 = 式 ;; 変数が必要になる時というのは、ある同じデータが複数必要な時。 例えば、1ヶ月のバイト代を計算してみると (* 時給950円で週3回(5時間、4時間、8時間)働いた月の給料 *) # ((950 * 5) + (950 * 4) + (950 * 8)) * 4 ;; という様…

プログラミングの基礎-1

プログラマーズホリデーにて情報を入手した「プログラミングの基礎/浅井健一」をしこしこやっていこうと思います。 関数型言語OCaml(オーキャムル) 関数型言語 単純、かつ強力 = より人間の思考レベルに近い記述が出来る 記述量が少ない プログラミングは、…

配列を使ったリスト - 改

C

上のコードだと、扱うデータが変更になった場合に書き直しづらい。 ex)topは要素の位置をint型で返すが、countが返すint型の値は要素数を表している。 この様な時は、プログラムとデータ型を分離して独立したデータ型として表現する。(抽象データ型-Abstract…

配列を使ったリスト

C

「C言語10課 データ構造とアルゴリズム編」 リストの機能 機能名 関数名 やること 初期化 init リストを空にする 先頭を求める top リストの先頭位置を返す 次の要素を求める next 次の要素位置を返す 要素数を求める count リストの要素数を求める 要素の値…

プログラマーズホリデー

行ってきました。 @La Maisonnee ARを見せていただいたり Vi(VIM) or emacsだったり ポメラあったり 日本電子(私が通ってる学校)の先輩がいたり(AI科?) 最近になって、外に出るのが楽しいと思える様になりました。 昔の自分は死ねば良いと思います。 以下の…

POKEN買った

名刺を作ってない&紙が無くて作れなかったので 朝一でPOKENを買いに行きました。 初仕事を終えたPOKEN氏 ビックカメラ店内の端っこにある閉じたレジの傍らにPOKENが。。 店員さんに聞かないとわからんわw 店員さん曰く 「時々、ネットで見た人が買いにくるん…

4ビットマイコン

大人の科学マガジン vol.24 4ビットマイコンを購入

暗号化技術

盗聴、なりすまし、改ざんなどの問題に対応するために暗号技術を使う。 共通鍵方式 暗号化と複合に共通の鍵を使う。欠点) 鍵を盗まれると終了。 相手毎に別の鍵を管理しないと行けないので管理が大変。 DES トリプルDES AES FEAL 公開鍵方式 暗号化と複合に…