タグ

OCamlに関するruiccのブックマーク (27)

  • 「プログラミングの基礎」を使った授業紹介

    「プログラミングの基礎」を使った授業紹介 浅井 健一 このページでは、お茶の水女子大学、理学部、情報科学科の2年生を 対象とした授業「関数型言語」のビデオほかを公開しています。 この授業は反転授業 (flipped class) を行っており、 受講生は授業前に以下の予習を求められます。 毎回の授業用に用意されたビデオを見て、 予習クイズに答えること。 教科書の該当部分を読んで、 教科書問題に答えること。 授業時間中は特に内容の説明はせず、 受講生は別途、示される練習問題とレポート問題を各自、解きます。 その際に生じた疑問点等について授業で個別に対応しています。

    ruicc
    ruicc 2015/03/06
  • Visualising an asynchronous monad - Thomas Leonard's blog

    Many asynchronous programs make use of promises (also known as using light-weight threads or an asynchronous monad) to manage concurrency. I've been working on tools to collect trace data from such programs and visualise the results, to help with profiling and debugging. The diagram below shows a trace from a Mirage unikernel reading data from disk in a loop. You should be able to pan around by dr

  • 多相バリアントを使いこなそう(1) - osiire’s blog

    以前OCamlは学習コストが低いといいましたが、私のOCaml学習の中で唯一多相バリアントだけはその意味を理解するのに時間がかかりました。ただ、分かってみると単純な話で、誰かが噛み砕いて説明してくれれば回り道しなくてもよかったのではないかと悔やまれます。また、多相バリアントについて集中的に解説しているWebページもあまりないので、ここで解説してみようと思います。 多相バリアントの基 「多相」バリアントというくらいですから、多相バリアントは多相的なバリアントなのです。普通のバリアントは多相になりません。例えば普通のバリアント型、 # type card = Joker | Num of int;; type card = Joker | Num of int # type in_data = Str of string | Num of int;; type in_data = Str o

    多相バリアントを使いこなそう(1) - osiire’s blog
    ruicc
    ruicc 2014/09/27
    「多相バリアント型のタグは特定の多相バリアント型に属さず、同じタグであれば複数の多相バリアント型のタグになり得る(多相)という訳です」
  • OCaml入門の手引 | POSTD

    OCamlを学ぶには、まず何から手を付けたらいいでしょうか? あなたなら何をしますか? 私はこれまで、恐らく10数回はOCamlを覚えようとしました。そして手を付けては諦め、また付けては諦めの繰り返しで、ついには数えるのをやめてしまったくらいです。 でも、今回は続いています。ひょっとすると、コミュニティそのものに何か根的な変化があったのかもしれません。 私にとって功を奏したのが実際は何だったのか、以下に考察してみたいと思います。 役に立つは? 『 Real World OCaml (以下、RWO)』がお勧めです。というよりも、 それ以外にお勧めはありません 。RWOは、私の生涯の中でも1、2を争うことができるくらいのコンピュータ言語解説書です。 ちなみに、その他にも解説書はありますが、大体が不正確な内容を含んでいるか、あるいはフランス語で書かれているかなので、 読まない 方がいいでしょ

    OCaml入門の手引 | POSTD
    ruicc
    ruicc 2014/08/10
  • Oops

    OCamlPro tackles complex design challenges (blockchains, Domain Specific Languages) notably with the use of formal methods. For that purpose, we promote the use of state-of-the-art programming languages like OCaml and Rust.

    ruicc
    ruicc 2014/07/06
    cheat sheetぽい
  • Real World OCaml が出ました - camlspotter’s blog

    一昨年から少しずつ書かれていた OCaml プログラミングの、 Real World OCaml (以下 RWO)がついに public beta になり公開されました。 ( https://realworldocaml.org/beta1/en/html/ ) 版元の O'Reilly ではこのベータ版の状態の e-book が 今なら安く手に入ります。完全版には後から無料でアクセスできるように なるそうです。( http://shop.oreilly.com/product/0636920024743.do ) !!!!!安く買いたい人は http://shop.oreilly.com/category/deals/early-release.do?code=WKERRLS をよく読んでね!!!!! このは、今まで外に伝わりづらかった OCaml プログラミングの最前線の一面を 伝

    Real World OCaml が出ました - camlspotter’s blog
    ruicc
    ruicc 2013/06/26
    Jane Street本熱い
  • OSXへOCamlの開発環境構築し直した - tmaeda 日記(2012-10-28)

    _ OSXへOCamlの開発環境構築し直した 今年はOCamlの4.0系が出たり、opamというかなりイケてるパッケージ管理システムが出て来たりしたので、 OCamlの開発環境を作り直した。 typerex というのも今年出たので気になってるんだけど、私の環境では3.12.1ではビルドが通らないし、 4.00.1だとビルドは通るけど、emacsとサーバーが通信始めると例外が起きるので、様子見中。 というわけで、相変わらずtuaregなのであった。 前提とする環境は以下。 MacBook Air 11inch 2012 OSX 10.7.5 Lion Xcode 4.5.1 GNU bash 3.2.48(1) Emacs 23.3.1 anything.el 1.287(sprk2012でhelm.elを見て、そろそろhelm.elに移行してもいいのかなーと思ったけど、まだめんどくさくてや

    ruicc
    ruicc 2012/11/04
    brewでopam入るのか
  • https://www.math.nagoya-u.ac.jp/~garrigue/papers/mlmt.pdf

  • ss2012 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)

    HaskellでWebアプリ作成 ~Webアプリケーションフレームワーク Yesod~ 島崎 清山 (株式会社ワークスアプリケーションズ) ならびに実習サポートスタッフ(@nobsun,@shtaag,@khibino,@kazu_yamamoto各氏) HaskellでWebアプリ作成 ~Webアプリケーションフレームワーク Yesod~ 島崎 清山 (株式会社ワークスアプリケーションズ) 概要: 関数型言語でのWebアプリケーション作成、と言うと想像が難しいと思う方もいらっしゃるかもしれません。 しかし実はHaskellでは手続き型言語と似た感覚でWebアプリケーションを手軽に作れます。 これを可能にするのがYesodという、Haskell製のWebアプリケーションフレームワークです。 他の有力なフレームワークと同様に、コマンド一回でアプリケーションの雛形が生成され、 作法にのっとっ

    ruicc
    ruicc 2012/08/16
    おお仮想マシンイメージ
  • 速攻MinCamlコンパイラ概説

  • 第6回 OCamlの「モジュール・システム」

    連載の第4回では,プログラミング言語「OCaml」のオブジェクト関連の機能を紹介した。しかし,OCamlには,オブジェクトとは似て非なる「モジュール」の仕組みもある。むしろ,通常はオブジェクトよりモジュールのほうがよく利用されている,ともいえる。実際に,OCamlの標準ライブラリ(http://caml.inria.fr/pub/docs/manual-ocaml/manual034.html)もモジュールとして提供されている。そこで,今回はOCamlのモジュール関連の機能(モジュール・システム)について紹介しよう。 なぜモジュール・システムが必要か 言うまでもないが,モジュール・システムの主要な目的は「モジュール性」,つまり,できるだけ独立した複数の部品にプログラムをわけることにある。 例えば,OCamlで「マンデルブロ集合」を描画するプログラムを記述するとしよう。マンデルブロ集合とは

    第6回 OCamlの「モジュール・システム」
    ruicc
    ruicc 2012/02/02
    モジュールからモジュールへの関数がFunctor。
  • OCaml API search

    by example 型 実行例 従来検索 型を一般化して検索 検索対象のモジュール一覧 使い方 型検索 型の入力欄に型を入力して、検索ボタンをクリックすると、入力した型に一致する関数が表示されます。 'aのように「'」がついている名前は型変数と呼び、任意の型として扱います。 (使用例) 引数がint型で、返却値がstring型の関数を検索したい場合:int->string 引数が任意の型のリストとint型で、返却値が任意の型の関数を検索したい場合:'a list->int->'a 例による絞り込み 型の入力欄に型を入力し、実行例の入力欄に実行例を入力して検索ボタンをクリックすると、入力した型に一致し、実行例の通りに実行例できる関数が表示されます。 実行例の入力欄には、与えたい引数と期待する返却値を以下のようなカンマ区切りで入力します。 引数1,引数2,・・・,返却値 型の入力欄に入力が無

    ruicc
    ruicc 2012/01/26
  • なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。ちょっと前にOCaml系のエントリを色々と眺めていたらYaron Minsky氏のエントリを見つけたので翻訳してみました。 OCaml for the Masses - ACM Queue Yaron Minsky氏はJane Streetで第一線で活躍されるエンジニアで、Jane Streetの技術ページをはじめ多くの場所でOCamlに関しての知見を語ってくださっています。 Jane Street Tech Blogs エントリはJohn Hughesの名エントリ「なぜ関数プログラミングは重要か」を受けてACM Queueに寄稿されたものの日語訳です。 なぜ関数プログラミングは重要か Why the next language you learn should be functional YARON MINSKY, JANE STREE

    なぜ次に学ぶ言語は関数型であるべきか - YAMAGUCHI::weblog
    ruicc
    ruicc 2011/11/06
    「型システムがバグを捕まえる能力は単独の小さなプロジェクトでも価値がありますが、真価を発揮するのは複数の開発者が一緒に生存期間が長いコードベースを共有するような協調環境においてです。」
  • チュートリアル - OCaml.jp

    Fri, 07 Oct 2016 16:51:03 JST

  • OCaml 基礎最速マスター — Scratch Leaf — MAYAH.JP

    OCaml は Haskell とは違って純粋でない関数型言語です。ML (Meta Language) という言語ファミリーの方言の一つで、フランスの INRIA という研究所で開発されています。速度を稼ぐために命令型のように書こうと思えば書けるし、遅延評価もデフォルトではしません。その分、practical なアプリケーションが書きやすくなっています。 他の言語をある程度知っている人はこれを読めば OCaml のとりあえずの基礎をマスターして OCaml を書くことができるようになります。多分。関数型言語の知識は仮定していません。C/C++ ぐらいの知識があれば読めると思います。元の Perl 基礎文法最速マスターではリファレンスぽい作りですが、チュートリアルぽくなってしまいました。 なお、読んでいると分かりますが、色々とめんどくさいことが多いように感じます。しかし、これをちゃんと書く

  • http://ocsigen.org/js_of_ocaml/

  • ウェブブラウザで関数型プログラミング! js_of_ocaml - camlspotter’s blog

    js_of_ocaml が熱い。 GoogleDart とか、そんな場合じゃない!! OCaml で書かれたプログラムがなぜか JavaScript に変換され、それがブラウザで動く。 JS で型がついていないオブジェクトでも何となく型をつけて OCamlで型安全に呼び出せる! 既存の JS ライブラリ資産が、ほとんど手間をかけずに、そのまま関数型言語パラダイムで使える! え?よくわからない? http://ocsigen.org/js_of_ocaml/manual/ の demo を試してご覧なさい。これが全部 OCaml で書かれている…! そんなわけで、 js_of_ocaml 体験記。だいたい実際に行っていった Hack を(行き止まりになった失敗枝は刈り去って)なぞっている。あ、ちなみに当方 JavaScript に関してはほとんど知識が無い。JS に関しては用語とか間違

    ウェブブラウザで関数型プログラミング! js_of_ocaml - camlspotter’s blog
    ruicc
    ruicc 2011/10/16
    よくわからない型持ってるDartとかどうでもよかった
  • 数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの"O"について

    関数型言語とオブジェクト指向は相容れない,という説をよく聞く。たしかに「オブジェクトは状態を持つ」「関数型プログラミングでは,できるだけ破壊的代入を行わない」とすれば,二つの概念は矛盾しているようにも思われる。また,技術的観点以外にも,「とかくシンプルさを好む多くの関数型言語プログラマが,何かと物事を複雑にする(と思われている)オブジェクト指向を嫌っている」という面があるかもしれない。 しかし,個人の好き嫌いはさておき,実際問題として,関数型言語とオブジェクト指向は大いに関係がある。むしろ,基礎理論については,ほとんど同じコミュニティの人たちが取り組んでいる,と言ってもいい。例えば,以下のような研究が,1980年代から現在に至るまで行われている。 関数型言語のモデルであるλ計算という体系において,オブジェクトを表現する研究(参考リンクなど) λ計算にならい,(プロトタイプベースの)オブジェ

    数理科学的バグ撲滅方法論のすすめ 第4回 関数型言語とオブジェクト指向,およびOCamlの"O"について
  • Haskell, OCaml の型変数と全称量化について

    Haskell の型注釈における a と OCamlの型制約における 'a の違いについて。 OCaml では forall になるとは限らないが、Haskell では forall になる。 Haskell で forall にしない型変数が欲しいときには、例えば UHC の拡張の Partial type signature を使うとできる。 OCaml で特に型変数を割りあてる必要が無いときには _ を使うこともできる。 続きを読む

    Haskell, OCaml の型変数と全称量化について
  • ocamljs を使おう : OCamlからJavaScriptへの変換 - keigoiの日記

    ocamljs は OCamlから JavaScript へのトランスレータだ。前回の記事と順番が逆になってしまったけれど今回はocamljsについて書く (基的に http://jaked.github.com/ocamljs/ 以外のことは書いてないです。)。 JavaScript歴史的経緯とその簡潔さからwebブラウザで使われているが,静的型付けでないので信頼性の面でいまいち不安だったり、言語の使いやすさの面でもパターンマッチの構文が無いとか、まともなモジュールシステムがないとかで良くない。 ocamljsを使えば、比較的安全・簡潔に大規模かつ動的なwebページを構成できるかもしれない。 ocamljsは残念ながらまだ成熟しているとはいえないが、実は既にすごく高機能だ。 現バージョンで既に DOM や jQuery を OCaml から操作できるし、いざとなれば JavaScri

    ocamljs を使おう : OCamlからJavaScriptへの変換 - keigoiの日記
    ruicc
    ruicc 2011/05/16
    なるほど便利だ!