With best-in-class Jira integration, and built-in CI/CD, Bitbucket Cloud is the native Git tool in Atlassian’s Open DevOps solution. Join millions of developers who choose to build on Bitbucket.
Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。
スペルチェック 識別子のミスタイプがあった場合訂正を提案します: # List.lentgh ;; Characters 0-11: List.lentgh ^^^^^^^^^^^ Error: Unbound value List.lentgh Did you mean length? 個人的には、はあだから?と言った感じかと思っていたのですが、今のところスペルミスを指摘されるとそれはそれでうれしいことが判明しております。 Parser rewriter -ppx CamlP4 がヘビー過ぎて使えないという虚弱体質な人のために新しい -ppx という物が入りました。はっきり言うと P4 をマスターしている 人には機能が縮小されたものなので嬉しくありません。 まあ使い慣れた Parsetree のレベルでいじれるのが幸いですが… ocamlc -dsource コンパイラが受け取ったパース
例外による再帰関数からの大域脱出は OCaml ではランタイムのペナルティはほとんどない、 という事になっている。 try with を書いてそれでもコードが読みやすければ使って構わない。 が、実際のところ、どうか。 -g を付けてコンパイルした場合、遅くなる。 さらに、 OCAMLRUNPARAM 環境変数に "b" が入っていると更に遅くなる。 しっかりした OCaml プログラムを開発したい場合はバックトレースは是非欲しい ところなので、 -g を付けて OCAMLRUNPARAM 環境変数に "b" を入れてプログラム を実行することは普通にある。だから、安易に例外を使うとパフォーマンスに影響する: let gen_timed get minus f v = let t1 = get () in let res = f v in let t2 = get () in res, mi
A rough summary in English which might sound too more direct than the original Japanese version. Sorry if you feel attacked: pro came in and did great jobs, while a volunteer felt burnt out. Probably this kind of things happens in the world everyday, in OSS, in football, in finance, or in everything. But if he had been excluded from the project for pro's quick market domination..., it would not be
この記事は OCaml Advent Calendar 2012 の 18日目の記事です。 OCamlでセッション型を実装した、というお話です。ちょっと時間がないので簡潔に書いています。 ソースはこちら セッション型 セッション型とは: 通信チャネルの型です プライベートな二者間のメッセージ送受信が整合していることを保証してくれます。(定義によっては多者間) 例えば let thread1 () = send c "Hello"; send c 123 という関数は文字列と整数をチャネルcに送るが (send c vはチャネルcに値vを送るプリミティブとする。以下同様)、 let thread2_bad () = let i = recv c in let j = recv c in print_int (i+j) は整数を2つチャネルcで受けるため(recv cはcで受信した値を返す)、
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のライブラリインストールは毎回本当に苦行なので期待が高まる。 基本、 https://github.com/OCamlPro/opam ここにあるとおりにやればいい。 が、微妙に書いてない事とかあったのでメモ。 インストール $ git clone git://github.com/OCamlPro/opam.git $ cd opam $ ./configure --prefix=$HOME/local # 適当な場所に $ make $ make install $ opam init $ eval `opam config -env` 注意: OCamlのバージョンが3.12.0以上である必要がある(多分) 3.11.2だと出たエラー Fatal error: unknown C primitive `unix_se
ACM SIGPLAN Workshop on ML Thursday, September 13, 2012, Copenhagen, Denmark (co-located with ICFP) The ML family of programming languages includes dialects known as Standard ML, OCaml, and F#. These languages have inspired a large amount of computer-science research, both practical and theoretical. This workshop aims to provide a forum where users, developers and researchers of ML languages and r
I'm curious to know how exceptions are dealt with in OCaml runtime to make them so lightweight. Do they use setjmp/longjmp or do they return a special value in each function, and propagate it? It seems to me that longjmp would put a little strain on the system, but only when an exception is raised, while checking for each function return value would need to check for every and each value after cal
さて、お約束していた OCaml の型エラーメッセージ改良のための改造、ある程度形になりましたので、公開します。 hg clone -b typeloc https://bitbucket.org/camlspotter/mutated_ocaml ビルドは configure の後、 make core coreboot world です。インストールなさる場合は既存の OCaml システムを潰さないように注意してください。インストールなしにトップレベルを試したい場合は ./ocaml -I stdlib 。といってもまだコンセプトが理解できる程度にしか動作せずまだまだ不完全です。バグもあるかと思います。 さてここから簡単にアイデアを説明します。MLの型推論についてある程度の知識が必要です。 HM 型システムではプログラムの各所を見ながらそれぞれが要求する型の情報を制約として集め、解の存
Atdgen is a command-line program that takes as input type definitions in the ATD syntax and produces OCaml code suitable for data serialization and deserialization. Two data formats are currently supported for serialization, these are JSON and Biniou, a binary format which retains most of JSON's properties. Atdgen can also generate data validators derived from annotated type definitions (starting
まだBatteriesのRopeと以前作っていたUnicodeライブラリCamomileの一部を集めた状態だけど、できれば今年中にIOの部分を加えてRopeをスクラッチから実装し直して最初のバージョンをリリースしたいと思っている。(と去年の今頃も言っていた気がするけど気にしない) 純粋関数的。CamomileではOCamlのstdlibの文字列処理を真似たため、手続き的なインターフェースになっている。でも流石に21世紀に入って10年以上経ってそれはないだろうと思うので。文字列データ型はRopeかなあと思っている。 軽量。CamomileはちょっとUTF-8文字列を処理するのに、GB18030の文字コード表をインストールしなくてはいけないとか富豪的すぎて、引く人が多い。今考えているのは、ライブラリを分割して、Coreな処理だけulibライブラリに、それ以外のいろいろな文字列処理や文字列照合、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く