タグ

ocamlに関するkuenishiのブックマーク (111)

  • ファンクターについての覚え書き (2) 実装編 - Qiita

    前回はこちら。例によってこれも最優先の読者は自分ですのでくどいです。自分向けならチラシの裏にでも書いてろ? まあ...確かに。どうも最近、 Qiita に投稿することが自分にとってメリットがあるのかそうでもないのかわからなくなってきたし。前回の続きだから投稿するけどさぁ、次はぁ、どうしよっかなぁー、あ、これこそチラ裏か。 前回のあらすじ 題に入る前に、前回の内容を振り返ってみます。前回の覚え書きは、 シグネチャとは何か:シグネチャとストラクチャの関係 抽象シグネチャ:シグネチャの一部の型を未定義にしておく with type t = ... の使い道 の三でした。 OOP で言うところの抽象クラスと具象クラスの関係みたいなもんですね。ただし継承関係はなく、まんまコピー...って、他のパラダイムで例えて理解するのはあまりよくないか。で、さらに短縮して一行にまとめるとこうでしょうか。 抽象

    ファンクターについての覚え書き (2) 実装編 - Qiita
  • ファンクターについての覚え書き - Qiita

    この記事は、ファンクターについてひっきりなしに勘違いを繰り返していた過去の自分への覚え書きです。ファンクターは難しいと言われるわりには、ぐぐってみると余裕で理解されている方が多いような気がするんですよね。回りくどくて何が何だかわからん!と思ったら、それはそれだけ勘違いを繰り返していた私のせいです。おかしな点があったらツッコミをお願いします。 それではまず、OCaml チュートリアルからファンクターの説明を抜き出してみましょう。 ファンクタはおそらく OCaml の中でもっとも複雑な特徴のひとつだが、 OCaml プログラマーとして成功するためにファンクタを広く使いこなす必要はない。実際、あなた自身ではファンクタを定義したことはないかもしれないが、標準ライブラリで間違いなく出会うだろう。ファンクタは Set や Map モジュールを使う唯一の方法だが、使うのはそんなに難しくはない。 ふむふむ

    ファンクターについての覚え書き - Qiita
  • OCamlの開発環境の作り方(2014年夏版) - osiire’s blog

    OCaml 4.02.0が出ましたね。PCを新しくしたついでにemacs 24系でOCaml環境を作った時のメモを置いておきます。 $ apt-get install opam $ opam init $ opam update $ opam switch 4.02.0 $ eval `opam config env` $ opam install omake ocp-index ocp-indent $ apt-get install auto-complete-el $ cat .emacs.d/ocaml.el (if window-system (require 'caml-font)) (setq auto-mode-alist (cons '("\\.ml[iylp]?$" . caml-mode) auto-mode-alist)) (autoload 'caml-mode

    OCamlの開発環境の作り方(2014年夏版) - osiire’s blog
  • Riakc In Five Minutes

    This is a simple example using Riakc to PUT a key into a Riak database. It assumes that you already have a Riak database up and running. First you need to install riakc. Simply do: opam install riakc. As of this writing, the latest version of riakc is 2.0.0 and the code given depends on that version. Now, the code. The following is a complete CLI tool that will PUT a key and print back the result

  • OCaml 開発環境について ~ OCaml コンパイラソース付属ツール - camlspotter’s blog

    2012年12月での関数型言語 OCaml コンパイラ一式をインストールした際に付属する「公式」ツール群の紹介を行う。多岐に渡るので、一つ一つの詳しい説明は行わない。各ツールの細かい情報はそれぞれのドキュメントを参照して欲しい。 もし知らないツール名があったらちょっと読んでみて欲しい。もしかしたらあなたの問題を解決するツールがあるかもしれないから。(特に caml-types.el) ★は重要度。五点満点。 外部ツールの紹介はまた今度ね。 錦小路と堺町通のあたりで見かけた。見ただけなんでイタリアンで駱駝なのかはわからない。 OCaml コンパイラ 現時点での公式最新バージョンは 4.00.1。 4.00.1 は基的に 4.00.0 のバグフィクスリリース。 4.00.0 では GADT と 3.12.1 より使い易い first class module が入っている。 このところ OC

    OCaml 開発環境について ~ OCaml コンパイラソース付属ツール - camlspotter’s blog
  • 実務で使うOCaml - 泥臭い仕事をサクっとこなす方法 - keigoiの日記

    プログラマが実務で出会うのは、問題が整理されたキレイな仕事ばかりじゃない。プロダクトに質的じゃない部分でもプログラムを書く必要に迫られる。いわゆる開発方法論では抽象化されてしまう、今ここにいるソフトウェア開発者の悩みだ。 今日は、私が仕事で書いたOCamlのコードを晒して、如何にOCamlがプログラマの仕事の道具として優れているかを主張したい。泥臭く、関数的でない、エレガントさのかけらもない、生活臭のあるコードだ。勤務先はOCamlをメイン言語として使っている。研究所とかではなく普通に受託開発を生業としている会社だ。OCamlは理論一辺倒で、マニア向けで、現実のソフトウェア開発には使えない、という誤解が万が一あるかもしれないが、全くそんなことはない。 (Haskellもそうだけど、それはまたの機会に) いかにOCamlが優れているかについての概論めいた話は、OCamlを数十人体制で10年

    実務で使うOCaml - 泥臭い仕事をサクっとこなす方法 - keigoiの日記
  • なぜ次に学ぶ言語は関数型であるべきか - 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
    kuenishi
    kuenishi 2012/06/14
    いつみてもすばらしい
  • JSXよりHaxeがイケてる5つの理由(実践編) もしくは Real World Haxe - みずぴー日記

    JSXがリリースされて1週間ぐらい立ちました。ガシガシ進化が進んでてすごいですねー。 おかげで、文法と適用範囲が似てるHaxeにも注目を集まっている気がします。なので、今日はそのHaxeを実際のプロジェクトに適用した事例について紹介したいと思います。題してReal World Haxeです。 プロジェクト概要 プロジェクトの概要は、前にosiireさんが2009-10-21で書いているのでそのまま引用します。 某自動車販売会社用のWebサービス サーバーサイドを全部OCamlで作成。OCaml+MySQL。既に稼働中のサーバーへ導入しなければならず、その環境が少し古かった(debian serge)ので一瞬焦ったが、ちゃんとOCaml開発環境は揃った。初めてpa_monadを導入したが、とても便利だった。重回帰分析をOCamlで実装した(Cで書くのがイヤだったから)。OCamlのコードはト

    JSXよりHaxeがイケてる5つの理由(実践編) もしくは Real World Haxe - みずぴー日記
  • http://hg.ocaml.info/

    kuenishi
    kuenishi 2012/05/10
    おお、いつのまにかこんなものが
  • Jane Street Tech Blog

    Sep 12, 2023 | 10 min read What the interns have wrought, 2023 edition We’re once again at the end of our internship season, and it’s my task to provide a few highlights of what the dev interns accomplished...

    Jane Street Tech Blog
  • Ocaml リファレンス

    3.09.3 がでています。マニュアルが派手だなぁ。(どういう印象だ) recursive module ってはいってたのかぁぁぁ。Caml Weekly Newsでの記事 ocamlc -dtypes でコンパイルして、Emacsでソースを開いて、 式の上でマウスの真中ボタンをおすと、なんだかうれしくなります。 注: 関数型言語としてのOcamlを学ぶにはまず 五十嵐先生のページなどをみて下さい 手っ取り早くMLを勉強したければこちら超特急、超入門。超、超。。。 目次 Language Imperative features (1.5) 配列(Array) 再帰以外の繰り返し Labels(2.1) Optional arguments (2.1.2) Classes and objects (3.1) Class定義 Instanceを作成 メソッドへのアクセス Reference t

  • Why do hedge funds and financial services often use OCaml?

    Speaking to a number of quants / hedgies, I came to the conclusion that a large number of them seem to be using either a homebrew language or OCaml for many tasks. What many of them couldn't answer was why. I can certainly understand why they wouldnt want to use C++ for the most part, but why is OCaml superior for these uses compared to other scripting languages, say Python, Ruby etc?

    Why do hedge funds and financial services often use OCaml?
  • 縦書き文庫の開発日誌 jingoo - ocaml template engine compatible with jinja2

    縦書き文庫をリニューアルする際に開発したテンプレートエンジン「jingoo」をgithubに公開しました。ライセンスはGPLv3です。 https://github.com/tategakibunko/jingoo  jingoo はOcaml製のテンプレートエンジンで、jinja2と全く同じシンタックスで、ほぼ全ての機能をクローンしています。  去年あたりにjinja2をgaeで使っていて当に便利だなあと思ったので「同じものがOcamlにも欲しい!」と思って作りました。  一応、テンプレートをOCamlコードにコンパイルすることも出来ます。  ちなみにコンパイルして動かした場合、まだ単純な比較しかしてませんが、おおよそ二倍速くなりましたが、ゼロコンマの世界で二倍になってもどうせDBの処理時間でチャラなのであんまり意味は無いですね。  ただテンプレートの内容は非公開にしたい、みたいなケー

  • ファンクタについて。 - blanket log

    OCaml のモジュールシステムは強力ですよという話。 関数が値を受け取って値を返すように、 functor は structure を受け取って structure を返す。 値 型 関数 let x : t = 〜 type t = 〜 let f (x : t) : t = 〜 structure signature functor module M : S = struct 〜 end module type S = sig 〜 end module F (M : S) : S = struct 〜 end このように、値 - 型 - 関数 と同じ関係が、structure - signature - functor 間にあって、 structureは値に、signatureは型に、functor は関数にそれぞれ対応する。 (functorの引数のsignatureは省略できない

    ファンクタについて。 - blanket log
  • azito.com

    This domain may be for sale!

  • GitHub - tategakibunko/jingoo: OCaml template engine almost compatible with jinja2

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - tategakibunko/jingoo: OCaml template engine almost compatible with jinja2
  • Real World OCaml

    Redirecting to dev.realworldocaml.org

  • TypeRex

    TypeRex, the OCaml Programming Studio TypeRex is a set of open-source tools and libraries for developing applications in OCaml, edited by OCamlPro. It is currently under development. Libraries and tools are released independantly, as soon as they reach a state where they can be tested and used by users.

  • OCaml-indent: OCaml で書いた OCaml ソースコードインデンタ - camlspotter’s blog

    OCaml のソースコードのインデント整形には Emacs なら ocaml-mode, tuareg-mode, Vim なら ocaml.vim(?) や omlet.vim があります。便利です。 でもどうも細かい部分が自分のスタイルと違ったり、特殊な改行をするとボロボロッとおかしなインデントをしてきたりします。あーなんかヤダナアと思って、(私の場合は tuareg の emacs lisp を)直そうと思うのですが、どうも面倒です。Elisp は慣れて無いのでコードを解析するのは辛い。 そこで、じゃあインデント解析部は OCaml で書いて、解析とエディタの部分だけエディタ固有の言語で書くようにすれば、Elisp なり、 Vim script なり書く量は極小になるんじゃないかなと思って OCaml-indent を作りました。 さらにインデント解析もできるだけ手間を掛けたくないの

    OCaml-indent: OCaml で書いた OCaml ソースコードインデンタ - camlspotter’s blog
  • 等差数列 - タイトル

    目標 配列の隣接する2項にそれぞれ演算を施した配列を得たい。つまり、 f (+) [1,2,3,4,5] = [3,5,7,9] のような f が欲しい。 結果 OCaml はオワコンだった (こうすればうまく書けるよ、というのがあれば教えてください) 愚直(Haskell) f g [] = [] f g [_] = [] f g (x:y:zs) = g x y : f g (y:zs) Haskell f g x = zipWith g x (tail x) F# let uncurry g (a, b) = g a b let f g x = Seq.map (uncurry g) (Seq.pairwise x) Ruby keyesberry さんより def f(x) x.each_cons(2).map{|y,z| yield(y,z)} end Ruby(無理やり) de

    等差数列 - タイトル
    kuenishi
    kuenishi 2011/12/28
    そういえば結局こうなった: open List let f g l = rev_map2 g (tl (rev l)) (rev (tl l))