タグ

ocamlに関するhikazohのブックマーク (9)

  • OCamlで簡単なプログラムを書いてみる - ももいろテクノロジー

    プログラミング言語のひとつであるOCamlで簡単なプログラムを書いてみる。 環境 Ubuntu 16.04.2 LTS 64bit版、OCaml 4.02.3 $ uname -a Linux vm-ubuntu64 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.2 LTS Release: 16.04 Codename: xenial $ ocaml -version The OCaml toplevel, version 4.02.3 OCamlの概要 OCaml

    OCamlで簡単なプログラムを書いてみる - ももいろテクノロジー
  • OCamlメモ

    OCamlメモ https://twitter.com/kagamihr/status/880594087606312962 というOCaml推しのツイートをみたので、インストールだけはしてみることに。 OCaml.org Wikipedia オーキャムル、オキャムル、オーキャメル、(Camlの部分は「らくだ」) 発音記号を見ると「オゥキャムル」っぽい。 Code Examples Try OCaml(オンラインでの実行環境) GitHubでのソースコード OCaml.jp Install brew install ocaml brew install opam letとlet recって何が違うんだろう。 ocamlのREPLのreadlineって^Pとかつかえないのかな。 utopを使うらしい $ ocaml OCaml version 4.04.2 # let sq x = x *

    OCamlメモ
  • Haskell、OCaml、RacketでGCのレイテンシを測る | POSTD

    James FisherはGHCのランタイムシステムが彼らのHaskellのプログラム上でレイテンシに悪影響を及ぼしたケースを、ブログに投稿しています。 低レイテンシ、大きなワーキングセット、そしてGHCのガベージコレクタ:3つのうち2つを選べ この記事では、その問題(基的に、レイテンシはコピー時間の影響を受ける)を示す非常にシンプルな合成ベンチマークを提案していて、さらに「50ミリ秒のレイテンシは過剰」と言っています。それで、他のGCがどのようにこの問題を処理しているかを見るため、OCamlとRacketで合成ベンチマークを再現したら面白いだろうと思いました。 細かい話は抜きにすると、要点は次のとおりです。OCamlのGCは古い世代にある大きなオブジェクトに関しては問題はありません。コレクションをコピーするのではなくマーク & スイープで処理するためで、このベンチマークではワーストケー

    Haskell、OCaml、RacketでGCのレイテンシを測る | POSTD
  • [OCaml]cursesで文字化け

  • OCamlで車輪を再発明する - fetburner.core

    最近研究でCoqぐらいしか書いてないので、リハビリがてらAtCoderで 開かれるコンテストにOCamlで参加して遊んでます。 僕は個人的な趣味もあってOCamlを使う際は専ら言語処理系を書いていましたが、 競技プログラミングでは全く関係ない題材を扱う必要があるので新鮮な感じですね。 それに伴って有名なアルゴリズムもいくつか実装したので、 ここではそういうアルゴリズムをMLではどう書いたのか紹介したいなと思います。 高速なべき乗のアルゴリズム 正式名称はよく分からないのですが、ありますよね?O(log n)でべき乗を計算するアルゴリズム。 x ^ nを計算する時、nが偶数の時は(x * x) ^ (n / 2)とみなすやつです。 OCamlで素朴に実装するとこんな感じ。 let rec power m = function | 0 -> 1. | n when n mod 2 = 0 ->

    OCamlで車輪を再発明する - fetburner.core
  • 2進法への信奉 (Courseraの "From Nand to Tetris" Week2前半のおさらい) - Line 1: Error: Invalid Blog('by Esehara' )

    今日の料理 砂肝のアヒージョ。 概要 Courseraでは、2進法で如何に計算するかということを説明していた。今回は、10進法を混じえながら、負の整数おび正の整数を如何に足すのか、について説明する。 n進法とは何か まず最初に、身近な10進法について考えてみよう。9999以下の任意の正の整数をmとし、10進法を式で表わした場合、下のように表わすことができる。以下に現れる各nは10未満の正の整数だ。 この式を見るとわかるように、10進法を表現したい場合、下のような数式に直すことが可能であることがわかる。 この式自体はなんでもないというか、「当たり前のことじゃないか」と思われるかもしれない。しかし、この当たり前のことというのは、2進法の表現にも同様に使える。上と同様に、各nを2未満、0か1で表現する場合、15未満の任意の正の整数を表現したい場合には、次のように書くことができる。 2進法の表記は

    2進法への信奉 (Courseraの "From Nand to Tetris" Week2前半のおさらい) - Line 1: Error: Invalid Blog('by Esehara' )
  • 自作CPU向けCコンパイラをつくってOS動かした話 (CPU実験まとめ) - kw-udonの日記

    僕の学科では伝統的に3年の後期に半年かけてCPU実験というものをおこなう。 班で自作のアーキテクチャを設計・実装し、FPGA基板上でMinCaml(OCamlのサブセット)でかかれた課題用レイトレーシングプログラムが動けば単位がもらえるというものである。 レイトレ完動後には、その高速化にはげむもよし、余興としてゲームをつくるもよしで、自作CPU上で色々あそんだりする。 今年は有志で班を結成し、自作CPU上でxv6というOSを動かした。 僕はその班にCコンパイラ係として参加したので、そのことについてかく。 あと、OS移植班全体の成果についても触れる。 わりと長くなってしまったので、結局なにができたんだっていう人は、とりあえず先にこっちに飛んでほしい。 動機 期間は4ヶ月程度、配布されたFPGA基板のうえで動かしたいという制約のもとで移植するOSはxv6を選択した。 このOSはシンプルであるが

    自作CPU向けCコンパイラをつくってOS動かした話 (CPU実験まとめ) - kw-udonの日記
  • 第1回 OCamlを試してみる

    「プログラミング言語理論」という研究分野がある。この分野の研究者たちは,「ML」「Haskell」「Scheme」あるいは「λ計算」「π計算」(円周率計算のことではない)など,多くのプログラマにとっては聞いたこともない言語やモデルについて,日夜研究している。そのような言語は,C,C++JavaPerlRubyなど,今の世の中で広く使われている言語とは見た目や考え方が違いすぎて,「難しい」「役に立たない」などと思われがちだった。 ところが,その状況が最近になって微妙に変化している。 HaskellやLispなど「関数型言語」についての記事が,専門の学会誌ではなく,一般の技術誌に掲載された(日経ソフトウエア2006年6月号「Haskellによる関数型プログラミング入門」など)様々なフリーソフトウエアがML,Haskell,Schemeなどで開発されたプログラミング言語の研究者ではなく,普

    第1回 OCamlを試してみる
  • WindowsへのOCamlのインストール - 檜山正幸のキマイラ飼育記 (はてなBlog)

    Coqと一緒にOCamlもあったほうがいいのかな、と。インストールするだけで終わるかもしんないけど。 http://protz.github.io/ocaml-installer/ から ocaml-4.01.0-i686-mingw64-installer3.exe をダウンロード。これは普通のインストーラーです。 デフォルトでは、OCaml以外に ActiveTcl, emacs, cygwinをインストールしようとします。emacsは既に入っているし、cygwinは要らない。ActiveTclは何の関係があるのだろう? ActiveTcl(バージョン 8.5.14.0)は試しに入れることにしたのですが、ActiveTclのインストールは失敗しました。別にいいや。 で、OCamlだけのインストール。インストール先ディレクトリを$OCamlと書くことにします。 OCamlは簡単に入ったけ

    WindowsへのOCamlのインストール - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 1