タグ

qiitaとocamlに関するnabinnoのブックマーク (31)

  • Jbuilder (Dune) でもっと楽に OCaml プロジェクトを作る - Qiita

    これは ML Advent Calendar 2017 の 18日目の記事です (ずいぶん遅れました). 前回の記事 では Oasis について紹介しましたが,Jbuilder (Dune という名前に変わります) のほうがもっと楽だったので反省しつつ紹介します. 名前にセンスがないとか S式やだとか思ってしまいますが実際これは圧倒的に良いツールです. 今後は基的には Jbuilder を使っていけばよい気がします(名前が変わるみたいですが…). 基的には公式のマニュアルを見れば使えるのですが,public_name や <package>.opam についてはやや記述が散逸している感じなので適宜補足します.また,名前空間の衝突を避けるために Jbuilder が行う -pack ライクな動作についても少し書きます. よい点 自動的な依存解析,簡潔な設定ファイル.OASIS と違って、

    Jbuilder (Dune) でもっと楽に OCaml プロジェクトを作る - Qiita
  • Oasis で楽に OCaml プロジェクトを作る - Qiita

    これは ML Advent Calendar 2017 の 6日目の記事です. ご案内: Jbuilder (Dune) でもっと楽に OCaml プロジェクトを作る もご覧ください。 Oasis は OCaml のビルドツールの一つです. 最低限必要な設定ファイルを作れば,ありがちな依存解析を全て自動的にやってくれて便利です. いわゆる ./configure && make && make install 式のインストーラをうまいこと自動生成してくれます. さらに OCamlfind (Findlib) 周りもよしなにしてくれるので,他の OCamlfind パッケージを使ったり,自前のパッケージの開発も簡単にできます. しかし,Oasis の日語の解説記事はこれといって見当たりません.そこで,この記事では私が Oasis をどのように使っているかを書きます. こまかいことは Oas

    Oasis で楽に OCaml プロジェクトを作る - Qiita
  • ゼロから始める OCaml - Qiita

    OCaml に興味津々のみなさんこんにちは、 OCaml ビギナーです。さて、 OCaml とは(ry ググればわかるような説明はさておき、そこのあなた、 "Ocaml" とキーを叩いてググる暇があるなら(あっ、 "OCaml" でした!)、いますぐターミナルを開いて brew install ocaml しましょう。やれってば。案ずるより産むが易しと言うではありませんか( Windows でしたか? 残念ながら Windows での OCaml は茨の道のようです。なんとか Unix 環境を用意してください)。おや、「 OCaml は仕事で使えるの?」「関数型言語って難しいんじゃない?」という心の声が聞こえましたが、アーアーキコエナーイ。はいはい、ググるだけ無駄です。どこを探しても、今のあなたの役に立つ情報なんかありませんよ?(おっと、誰か来たようだ) ... はい、 brew inst

    ゼロから始める OCaml - Qiita
  • OCamlのモジュール (ストラクチャ) とモジュール型 (シグネチャ) - Qiita

    これは ML Advent Calendar 2017 の 4日目の記事です (書き溜めていたものを公開.) OCaml のモジュール (module) とモジュール型 (module type) がややこしいと思った,そんな初心を思い出して少し記事を書きました. OCaml で簡単なプログラムは書けるけれど,モジュール化の方法がいまいち分からないという人向けです. (当に書きたかった話題は「ファンクターを使ったモジュール抽象化」でした.具体的には, OCaml の非同期処理のモナド Async と Lwt の両方で使えるライブラリを設計する…ということを書きたかったのですが,時間がなくなりました.そういうものに興味がある人は,例えば ocaml-cohttp をじっくり辿ってみると良いと思います. 他に,私の作りかけのライブラリ でも,base.ml においてモナドモジュールをパラメタ

    OCamlのモジュール (ストラクチャ) とモジュール型 (シグネチャ) - Qiita
  • OCaml の記号あれこれ - Qiita

    おはようございます。今日も一日、よろしくお願いします。 おはようございます。今日も一日、よろしくお願いします。 大事なことなので二度コピペしました。おはようございます、 OCaml ビギナーです。先日、私のコードの diff を眺めていた CVO(最高美夢責任者)が 「くっ、我がダークヴィムマスターの戦闘力を以てしても皆目検討が付かぬ……これが神の創りし大駱駝(※ OCaml のことらしい)の力……」 とつぶやかれておりましたので、 「っふ……駱眼(※ OCaml のコードを見抜く第三の目。慈悲はない)を持たぬ者にはわからんだろう……ククク、俺の右眼が疼くわ!(花粉の季節はつらいです)」 と突き放しておきましたが、はて具体的に何がわからなかったのか聞きそびれました。ところで私は、 OCaml の実用的なコードに含まれる見慣れない記号の多さに面らった覚えがあります。最近になってやっとだいた

    OCaml の記号あれこれ - Qiita
  • OCamlでErlangのBEAMをパースするライブラリの話 - Qiita

    これはML Advent Calendar 2017の21日目の記事です。 OCamlで書いている自作言語の中間表現の紹介をしようと思ったのですが中途半端なところまでしか作れなかったので、今回はOCamlで書かれたErlangのBEAM FormatとErlang External Term FormatのパーサであるObeam(御-BEAM)の紹介をしたいと思います。 人間がErlangを書く際、Dialyzerという静的解析ツールにお世話になることが多いと思います。主に事前に静的に型検査を行える便利なツールで、動的型付き言語に後から静的型検査を追加したということで既存の型指定がないコードもなるべく解析できるような型システムを積んでいます (オススメ記事→ Dialyzer の型推論アルゴリズムについて)。 これが非常に重たくてツラいというのがあります。OTP20でかなり改善された気がす

    OCamlでErlangのBEAMをパースするライブラリの話 - Qiita
  • VSCode拡張の簡単なアセンブラのデバッガをOCamlで作った話 - Qiita

    これは ML Advent Calendar 2017 の 4日目の記事です。VS Code も絡むのでそっちにも登録してしまいましたw はじめに MLを使いならば、操作敵意味論を理解しなくてはならない。 操作敵意味論を理解するには、論理型言語を理解しなくてはならない。 MLでPrologを実装できれば論理型言語を理解していると言ってよいはずだ。 論理型言語の動作を理解するためにはデバッガがあると便利なはずだ。 しかし、デバッガを作るノウハウが我々にはない。 よって、我々はOCamlによるデバッガを作るサンプルを作成することにしたのである。 1. VS コードのデバッガサンプル(PHPバージョン) これは簡単なアセンブラ言語を作ってそのデバッガを作るサンプルプロジェクトである。 通常は、TypeScriptでDebug Extensions を書くのですが、簡単な標準入出力で VS Cod

    VSCode拡張の簡単なアセンブラのデバッガをOCamlで作った話 - Qiita
  • Flowtype導入のための指針・実際の運用について - Qiita

    このドキュメントの目的 自分は趣味でFlowをずっと使っていて、またプロダクションでも今まで3プロジェクトほどにFlowを導入した。その知見。 「Flow は便利そうだけど、怖い」「いれてみたら色々ハマったからクソ」「わからん、なにもかも…」という人に対し、自分がいままで出くわしたパターンや、聞かれた疑問について、メジャーな解法を提示する。 なぜFlowを導入するか Babel から段階的に導入することが出来る React の JSX にも推論を入れることができる 部分的に適用できる ASTがES準拠であり、ESLintなどがツールが使える(TSは独自AST) それ自身ランタイムに全く影響はないので落とすのも簡単 実際にはReactと一緒に使うのが、エコシステムもユースケースも揃っていて、一番効果を発揮するだろう。それか、小さい npm モジュールを自分で書くとき。 型のメリット/デメリッ

    Flowtype導入のための指針・実際の運用について - Qiita
  • 【 キャリア × 関数型言語 】金融業界 における 関数型言語 導入実績 ~ Haskell, F#, Scala も採用されているが、LexiFi社 & Jane Street社 の成功 が 背景にあり、 OCaml の 存在感 が 強い - Qiita

    【 参考 ウェブサイト 】 小笠原 啓(2015/05/31)「函数プログラミングのエッセンスと考え方」 サルノオボエガキ(2006/08/24)「MLFi ‐ 金融商品を書くための関数型言語」 OCaml.jp 活用事例 金融業界では、Haskell や F#, Scala も採用されているが、過去2社の成功実績から、OCaml の占める比重が大きい 【 2つの成功実績 ~LexiFi社 & Jane Street社 】 1.LexiFi社(仏) 金融派生商品 店頭取引(OCT)契約情報 記述特化型言語(DSL)「MLFi」 の 市場化 成功 サルノオボエガキ(2006/08/24)「MLFi ‐ 金融商品を書くための関数型言語」 ITソリューションフロンティア 2005年3月号 海外便り 松下 樹(野村総合研究所)「関数型言語による金融アプリケーション」 Hatena::Diary O

    【 キャリア × 関数型言語 】金融業界 における 関数型言語 導入実績 ~ Haskell, F#, Scala も採用されているが、LexiFi社 & Jane Street社 の成功 が 背景にあり、 OCaml の 存在感 が 強い - Qiita
  • 代数的データ型とパターンマッチによる言語比較:Koka,Rust,Haxe,Swift,Elm,PureScript,Haskell,OCaml,ReasonML,ReScript,Kotlin,Scala,Dotty,Ruby,Julia,TypeScript - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    代数的データ型とパターンマッチによる言語比較:Koka,Rust,Haxe,Swift,Elm,PureScript,Haskell,OCaml,ReasonML,ReScript,Kotlin,Scala,Dotty,Ruby,Julia,TypeScript - Qiita
  • OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita

    この投稿は Machine Learning Advent Calendar と ML Advent Calendar の18日目の記事です. 今日は関数型プログラミング言語 OCaml と線形代数演算ライブラリ SLAP を使った型安全なニューラルネットワークの実装について書きたいと思います.最近,深層学習とかいうニューラルネットの応用が流行っていますし,一方で,関数型プログラミング言語とかいうのも流行っているので,2つの流行に(むりやり同時に)のってみました. 私はOCaml を使って,次元の合わない行列演算をコンパイル時に検出する機能を持った変な線形代数演算ライブラリ Sized Linear Algebra Package (SLAP) を作っています.世の中には便利な線形代数ライブラリ(BLAS とか LAPACK とか)や数値計算言語(MatLab とか R とか)が沢山ありま

    OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita