大昔に描いた絵。本命はOCamlちゃん。
2012年1月14日のジュンク堂書店池袋本店トークセッション「新春座談会 このコンピュータ書がすごい! 2012年版〜2011年に出たコンピュータ書ならこれを読め!〜」にて本書が紹介された模様です.(2012/1/14記)補助資料正誤表演習システムガイド継続(EvalContML1)第一級継続(EvalContML4)参照(EvalRefML3)本演習システムを使っている講義京都大学 大学院情報学研究科 通信情報システム専攻 専門科目「プログラム意味論」(2013年度〜)京都大学 大学院情報学研究科 知能情報学専攻 専門科目「ソフトウェア基礎論」(2008年度〜2012年度)お茶の水女子大学 大学院人間文化創成科学研究科 理学専攻 情報科学コース「言語意味論」(2012年度)お茶の水女子大学 理学部 情報科学科「計算モデル論」(2012年度)Updated on 2022-05-25 21
a side-by-side reference sheet grammar and invocation | variables and expressions | arithmetic and logic | strings | dates and time | arrays | lists | tuples | dictionaries | functions | execution control | exceptions | concurrency | file handles | files | directories | processes and environment | libraries and namespaces | user-defined types | objects | inheritance and polymorphism | net and web
このページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 ↑special thanks to camlspotter! (このイベントは終了致しました。発表資料や動画が置いてありますので、ご参照ください。ご参加頂いた皆様、ありがとうございました。) OCamlのさらなる普及とユーザー間の幅広い交流を目指して、好評を博した昨年に引き続き、今年も OCaml Meeting 2010 を開催したいと思います。 OCamlの特徴は、なんといっても強力な静的型システムにあります。型安全性を保ちながら、構造的な部分型への変換、多相バリアント、再帰モジュールといった柔軟な設計とプログラミングを実現できる仕組みを持っている言語は類がありません。加えて、定理証明支援器Coqとの連携による高信頼化、多くのCPUアーキテクチャに対応した高速なネイティブコードを
Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「
134名の方のご参加を頂き,PPL2010は盛況のうち無事終了致しました.ありがとうございました.参加できなかった方で論文集の残部の郵送を希望される方は,実行委員会までご連絡ください.(3/10)
ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を用いずに)書くときに役立ちます. ふつうに書いたら煩雑な処理を, 関数型言語のやり方で書くとすっきりすることが多々あり, コードを自由自在に書くためには必須の考え方と言えるでしょう. 項 ラムダ計算の式を項(term)と言います. 項は変数, 抽象, 適用のいずれかです. 変数 変数(variable)はふつう1文字で書きます. 変数には関数内の束縛変数(bound variable)か自由変数(free variable)かという区別があり
ゲーデルの不完全性定理は、数学を扱う数学、つまりメタ数学を考えるが、それだと理解が難しい。しかし、証明(数学)=プログラムという悟りを開くと、プログラムを扱うプログラム、つまりメタプログラムを考えればよくなり、それならコンパイラ等でなじみがあるので理解が優しくなる。 話の流れは以下。 1. プログラムとは何か 2. 証明とは何か 3. 証明=プログラム , ( {、 { ヽ.ー、、 \、__ぃ._ゝ⌒ヾ iヾ)}、_ ン_ー-_二ー-, 〉 {厶 _、ヽ _ ヽ._>'´ / /,ィ/ / ハYヘい ,. -- 〃⌒ r−-、 ィ´ 〃 ,イ/7' ,イイ/ 小ヽ 丶、 ,. ‐ '´ハ i ″`ヽ、 、ヽ、 /幺ィ {从{小込v' jゥ仏厶川リ} YV, 小 Vj. |丶 ヽ ` ー-ミー--'_,辷三彡
Haskell 、Erlang の次のブームは Coq に違いありません。とりあえず基本ということで、Coq でひねりのない brainfuck インタプリタを書いてみました。動作例。Coq のコードが色づけできないとは何事か。 Eval compute in (finite_execute " +++++++++[>++++++++>+++++++++++>+++++<<< -]>.>++.+++++++..+++.>-.------------.<++ ++++++.--------.+++.------.--------.>+. " "" 500). = "Hello, world!"%string : string 残念ながら (?) Coq では停止性が保障された関数しか定義できません。ここでは最大評価ステップを指定しないといけないという仕様にしてごまかしています (引数の 50
CSNagoya3周年記念の発表で使ったネタ言語。 ジョジョ言語 バージョン3です。 タイトルでピンと来なかった人はwikipediaのbrainfuckの項目などをご覧下さい。 賢い人がバージョン6を作って素数をカウントするなどしてくれたらいいと思います。 特徴 バトル風言語 バージョン3 ジョジョ言語の構文 オラ … 現在のポインタの値を1増やす 無駄 …現在のポインタの値を1減らす スターフィンガー!、やれやれだぜ…ポインタを1つ右に動かす ロードローラーだ!、貧弱ゥ…ポインタを1つ左に動かす ハーミットパープル…現在のポインタの値をアスキーコードとして出力する 新手のスタンド使いか!…標準入力から1文字読み込み、現在のポインタに書き込む あ…ありのまま 今 起こった事を話すぜ!…ポインタの値が0なら、対応するザ・ワールド!までジャンプ ザ・ワールド!…ポインタの値が0以外なら、対応
Coq などの定理証明系に興味を持っている人は少なくないと思うのですが、やっぱり最初の一歩を踏み出すのは大変。web 上の Coq チュートリアルは、Coq 処理系の機能を説明しているだけで、数学の素養がない人(普通の情報系の学生)が実際に関数の性質を証明するためにどうしたらいいかが書いてあるわけじゃないし。 だって「(a -> b -> c) -> (a -> b) -> a -> c" を証明してみましょう」とか言われても全然やる気にならないじゃん。そんなことを証明するために Coq を使いたいわけじゃない! そんなわけで、ocaml-nagoya の合宿の機会を利用して id:yoshihiro503 さんと id:suer さんに、Coq をプログラミング言語として使う場合の基本を教えてもらってきました。特に id:yoshihiro503 さんは少なくとも僕から見ると Coq M
縺薙�ョ繝壹�シ繧ク縺ッ譛�蠕後↓譖エ譁ー縺輔l縺ヲ縺九i1蟷エ莉・荳顔オ碁℃縺励※縺�縺セ縺吶�よュ蝣ア縺悟商縺�蜿ッ閭ス諤ァ縺後≠繧翫∪縺吶�ョ縺ァ縲√#豕ィ諢上¥縺縺輔>縲� OCaml Meeting 2009 in Tokyo (蟷ウ謌仙サソ荳�蟷エ譚ア驛ス螟ァ鬧ア鬧昜シ�) 縺薙�ョ繧、繝吶Φ繝医�ッ逶帶ウ√�ョ縺�縺。縺ォ邨ゆコ�閾エ縺励∪縺励◆縲ゅ#蜿ょ刈鬆ゅ>縺溽嚀讒倥�√≠繧翫′縺ィ縺�縺斐*縺�縺セ縺励◆縲� 逋コ陦ィ雉�譁吶d蜍慕判縺檎スョ縺�縺ヲ縺ゅj縺セ縺吶�ョ縺ァ縲√#蜿ら�ァ縺上□縺輔>縲� 髢「謨ー蝙玖ィ�隱� OCaml縲�1994蟷エ縺ォ螟ァ蜈�縺ィ縺ェ繧� CAML 縺悟ョ溯」�縺輔l縺ヲ莉・譚・縲�髟キ繧峨¥遐皮ゥカ閠�逕ィ縺ョ縲後♀繧ゅ■繧�縲阪↓逡吶∪縺」縺ヲ縺�縺� OCaml 縺ァ縺吶′縲√◎縺ョ繝励Ο繧ー繝ゥ繝縺ョ螳牙�ィ諤ァ繧剃ソ晁
最近Agdaを触る機会があったのだが、Agdaこそ未来のプログラミング言語ではないかという気がしてきた。ここでは行列の転置をする関数を定義することで、Agdaでのプログラミングがどんなものか紹介したい。その前に一言:Agdaは定理証明系として紹介されることが多い。これはAgdaにとって不幸なことだ。確かにAgdaの型システムは強力なので、例のカリーハワード同型により、型を命題、プログラムを証明とみなすことができる。ただし、私の印象ではAgda上は数学の証明をしやすいようにはそんなにはできていない。Agdaで証明するには、ある型をもつ定数なり関数を定義することになるわけだが、定義した関数がその型を持っているかことを型チェッカに説得するために、型チェッカの詳しい挙動について理解していなければならない。むしろ、Agdaは依存型をもつプログラミング言語と思った方がよいと思う。依存型とはなにかは例を
※ セッションの順番や時間は変更されることがあります。あらかじめご了承ください。 セッション内容 基調講演 今年は基調講演でスタートします。 LL魂の名にふさわしいソウルフルなスピーチを会場の隅々までお届けします。 講演者:和田英一(東京大学名誉教授、IIJ技術研究所所長) テーマ:ハッカー気質について 講演者紹介:和田英一氏は、日本のプログラミング分野のパイオニアとして知られ、「日本最初のハッカー」と称されています。和田氏が行った日本最初のコードハックであるパラメトロン計算機 PC-1におけるハッキングは、後に文学的作品とまで評せられました。また、プログラミングにとどまらず、和田研フォントの開発、Happy Hacking Keyboardの開発等、幅広い分野で活躍されてきました。「日本最初のハッカー」が語る「ハッカー気質について」、ぜひお楽しみください。 講演資料 司会: 法林 浩之
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く