タグ

ocamlに関するmukakenのブックマーク (99)

  • 抽象度の高い関数型言語プログラミングのスキルを身につけるための書籍が発売/「OCaml」を通じて関数型プログラミングを学べる『関数型言語で学ぶプログラミングの基本』【Book Watch/ニュース】

    抽象度の高い関数型言語プログラミングのスキルを身につけるための書籍が発売/「OCaml」を通じて関数型プログラミングを学べる『関数型言語で学ぶプログラミングの基本』【Book Watch/ニュース】
  • 関数型言語で学ぶプログラミングの基本 | インプレス NextPublishing

    インプレス NextPublishing 関数型言語で学ぶプログラミングの基 著者:川井 俊輝 抽象度の高いプログラミングのスキルを身につける! 関数型プログラミングへの関心が高まる中、多くのプログラミング言語がその核心的な概念を採用しています。この流れを受け、書ではOCamlという関数型プログラミング言語を通じて、関数型プログラミングの基礎及びその応用について詳しく解説します。 OCamlは、その直感的な文法と高度な抽象化機能を備え、複雑なアプリケーションの開発に適しています。「OCamlとは何か?」「実際に使い物になるのか?」と疑問を持つかもしれませんが、OCamlの学習は関数型プログラミングの理解を深め、さまざまな言語でのプログラミングスキルの向上につながります。 OCamlで学ぶことにより、プログラミングの基的な概念を習得し、他言語にも適用可能なプログラミング技術を手に入れる

    関数型言語で学ぶプログラミングの基本 | インプレス NextPublishing
  • 関数型言語で学ぶプログラミングの基本 技術の泉シリーズ | 川井 俊輝 | 工学 | Kindleストア | Amazon

    関数型言語で学ぶプログラミングの基本 技術の泉シリーズ | 川井 俊輝 | 工学 | Kindleストア | Amazon
    mukaken
    mukaken 2024/02/17
    『関数型言語で学ぶプログラミングの基本 技術の泉シリーズ』2024/2/23発売 これは読みたい!"本書ではOCamlという関数型プログラミング言語を通じて、関数型プログラミングの基礎及びその応用について詳しく解説"
  • プログラミングの基礎 ((Computer Science Library)) | 浅井 健一 |本 | 通販 | Amazon

    プログラミングの基礎 ((Computer Science Library)) | 浅井 健一 |本 | 通販 | Amazon
  • asyncを使わずに並行処理をやる方法はないのか - yhara.jp

    メモです。 What Color is Your Function? – journal.stuffwithstuff.com async/awaitを実装した言語では、asyncな関数とそうでない関数が区別される つまり、async funcを受け取るメソッドにnormal funcを渡すことはできない(逆もしかり) そのために、.mapと.mapAsyncみたいに各APIにasync版と非async版が必要になる https://blog.yoshuawuyts.com/announcing-the-keyword-generics-initiative/ keyword genericsという案 なぜasyncな関数と普通の関数は互換性がないのか async funcはステートマシンにコンパイルされるから (いやまあ別にそういう決まりはないけど、JS/Rust/C#はいずれもそうして

  • 40歳から始める関数型言語、OCaml - すぎゃーんメモ

    動機 Why OCaml 学習方法 Real World OCaml Github Copilot と ChatGPT オンラインジャッジ (競プロ) Advent of Code その次? 所感 関数型という概念 OCamlの書き味 Rust, Python の経験 AIとの親和性 まとめ 某Nさんがここ最近Haskellとか勉強してて楽しそうで真似してみたくなって、自分も今さらながら何か関数型言語はじめてみるか〜と周りに相談したところOCamlをオススメされたので 今年に入ってからひたすらOCaml書く練習してる。AtCoder Boot camp for BeginnersのEasy 100をようやく終わらせたところ。 pic.twitter.com/POBWhvHHCn— すぎゃーん💯 (@sugyan) April 9, 2023 大西さんが動画の中で感極まっていたけど、宮川さ

    40歳から始める関数型言語、OCaml - すぎゃーんメモ
  • Real World OCaml

    Functional programming for the masses2nd Edition (Oct 2022) Yaron Minsky Yaron Minsky joined Jane Street in 2003, where he started out developing quantitative trading strategies, going on to found the firm's quantitative research group. He introduced OCaml to the company and managed the transition to using OCaml for all of its core infrastructure, turning Jane Street into the world's largest indus

  • mapの表現力 - Arantium Maestum

    最近考えるきっかけがあったので書いておく。 一般的にmapやfoldは再帰を使って実装でき、そして再帰に比べて制約がかかっていて表現力が落ちるとされている。むしろその制約があるからこそそのコードの「何をしたくて何をしないか」という意図が明確になるところが好ましい、と。 しかしこの制約はOCamlのような多機能な言語においては「お作法」的な了解によって成り立っていることであり、mapによる繰り返し作用を他の機能と組み合わせて任意のループ的な処理を実装することができる。 その一例: exception Done let x = ref 0 let rec ys = 0::ys let f _ = if !x < 10 then (print_int !x; incr x) else raise Done let _ = try List.map f ys with Done -> [print

    mapの表現力 - Arantium Maestum
    mukaken
    mukaken 2023/02/03
    "mapやfoldは再帰を使って実装でき、そして再帰に比べて制約がかかっていて表現力が落ちるとされている。むしろその制約があるからこそそのコードの「何をしたくて何をしないか」という意図が明確になるところが好まし
  • OCaml 5.0.0 is out!

    We have the pleasure of celebrating the birthdays of Jane Austen and Arthur C. Clarke by announcing the release of OCaml version 5.0.0. The highlight of this new major version of OCaml is the long-awaited runtime support for shared memory parallelism and effect handlers. This multicore support is the culmination of more than 8 years of effort, and required a full rewrite of the OCaml runtime envir

  • Release OCaml 5.0.0 · ocaml/ocaml

    OCaml 5.0.0 introduces a completely new runtime environment with support for shared memory parallelism and effect handlers. As a language, OCaml 5 is fully compatible with OCaml 4 down to the performance characteristics of your programs. In other words, any code that works with OCaml 4 should work the same with OCaml 5. The currently known exceptions to this rule are: the removal of many long-depr

    Release OCaml 5.0.0 · ocaml/ocaml
    mukaken
    mukaken 2022/12/17
    早速、自分のプロジェクトに投入しよ。
  • I'm as shocked as you, but the Darklang backend rewrite is actually complete

    For the first few years of the life of Darklang, each time we didn't have a library available for our OCaml-based backend, or decided to build a feature in our DB instead of on a proper cloud server, we said "ugh, let's hack this and we can fix it when we rewrite it in Rust". Realizing that Dark was going to be running with a small team for a long time, it was clear that we couldn't keep piling on

    I'm as shocked as you, but the Darklang backend rewrite is actually complete
    mukaken
    mukaken 2022/06/26
    “And though the rewrite ended up being in F#, rather than Rust, in late 2020 I embarked on a project to rewrite our OCaml-based backend to put us on strong foundations for building Dark in the future.”
  • OCaml Programming: Correct + Efficient + Beautiful — OCaml Programming: Correct + Efficient + Beautiful

    Preface About This Book Installing OCaml Introduction 1. Better Programming Through OCaml 1.1. The Past of OCaml 1.2. The Present of OCaml 1.3. Look to Your Future 1.4. A Brief History of CS 3110 1.5. Summary 2. The Basics of OCaml 2.1. The OCaml Toplevel 2.2. Compiling OCaml Programs 2.3. Expressions 2.4. Functions 2.5. Documentation 2.6. Printing 2.7. Debugging 2.8. Summary 2.9. Exercises OCaml

    mukaken
    mukaken 2022/06/26
    コーネル大学のデータ構造と関数型プログラミングの教科書。『OCaml関数型プログラミング』
  • 時間を加味したモデリング - DeNA Testing Blog

    こんにちは、SWETの鈴木穂高(@hoddy3190)です。 現在SWETチームにて仕様の欠陥をなるべく早くみつける取り組みにチャレンジしています。 欠陥をみつけるタイミングが早ければ早いほど、開発中の手戻りに伴うコストを抑えられます。 たとえば、仕様作成フェーズ、実装フェーズ、QAフェーズの順で開発が進んでいくときに、仕様の欠陥が実装フェーズやQAフェーズでみつかると実装やQAのやり直しを引き起こしかねません。 そうした大きな手戻りを抑えるために仕様の欠陥をなるべく仕様作成フェーズでみつけることを目指します。 対象領域に出てくる要素をモデリングすることは、仕様に潜む欠陥を開発の早い段階でみつけるための、有効な手段のひとつです。 要素には、開発者がこれから作るシステムや、そのシステムのユーザー、そのシステムと直接的または間接的に相互作用する外部のシステムが含まれます。 単に図を書くというモ

    時間を加味したモデリング - DeNA Testing Blog
    mukaken
    mukaken 2022/04/06
    “OCamlをモデリング言語として使って時間を加味したモデルを記述する方法を紹介”
  • 関数型プログラミング言語における関数適用構文の歴史的経緯についてのメモ - Arantium Maestum

    先日こういうツイートがあった: Haskellとかの関数型言語を使用しているプログラマの皆様にお聞きしたいんですけど、「関数名 引数 引数 ...」みたいな関数呼び出し構文って見にくくは無いですか?「関数名(引数, 引数, ...)」に慣れたこちらからすると、丸括弧が無いからコード中のどこが関数呼び出しなのかパット見で把握しにくい。— sounisi5011/プログラム (@sounisi5011Prog) February 22, 2022 「見にくくは無いですか?」と聞かれると、個人的には「全然大丈夫です」と答えざるを得ないのだが、次のツイートに関しては考えさせられた: 数式でも函数には丸括弧を使ってるのに、どこのタイミングで丸括弧が消失したのかわからないし、その選択をした理由も思いつかない。— sounisi5011/プログラム (@sounisi5011Prog) February

    関数型プログラミング言語における関数適用構文の歴史的経緯についてのメモ - Arantium Maestum
    mukaken
    mukaken 2022/02/26
    “関数型言語の二大巨頭(異論は認める・・・)であるHaskellとML(OCaml・SML)のどちらでも「関数適用にカッコがいらない」という構文が採用された歴史的経緯”
  • OCaml でゲームボーイエミュレータを書いた話 - Qiita

    はじめに ブラウザ上で動くゲームボーイエミュレータを OCaml で書きました。以下のページで試せます。 デモページ いくつかの homebrew ROM も一緒になっているのでいろいろ遊んでみてください。おすすめは「Bouncing ball」と「Tobu Tobu Girl」です。最近のスマホならだいたい安定して 60 FPS 出るはずなので、スマホでも遊べます。 レポジトリはこちらです。 スクリーンショット なぜ OCaml でゲームボーイエミュレータ?新しいプログラミング言語を学ぶ過程で以下のように思ったことはないでしょうか? 簡単なプログラムなら書けるが、中規模以上のコード1をどうやって書けばよいのか分からない 発展的な言語機能2も勉強しなんとなく理解した気になったが、実践のなかでどのように活用すればいいのかが分からない OCaml を格的に勉強し始めてた数ヶ月前の筆者はまさに

    OCaml でゲームボーイエミュレータを書いた話 - Qiita
  • 僕がお金を払ってでも教わりたいこと 2021

    追記 一旦締め切りました。 連絡をくださった方、書籍などのアドバイスをくださった方ありがとうございます。 文 謝礼をお支払いするので、教えて欲しいことがあります。 自習しろと言われそうですが、試行錯誤するには人生が短すぎたり、爆速突破するには能力が足りなかったりで色々辛くなってきたので何卒。 以下、学びたい優先度順です。同時に学べるのは多くて 2 つで、被った場合は優先度順でお願いすることになります。 教えて欲しいこと OCaml で Parser Combinator を 0 から作る 狙い: 関数型プログラミング言語とそれの使い方を学びたい。また、OCaml のエコシステムに詳しくなりたい。 Monadic Parser をゼロから作ることで、関数型プログラミングのテクニックや考え方を学びたいです。 すでに 教科書的な簡単な Monadic Parser を 0 dependenci

    僕がお金を払ってでも教わりたいこと 2021
    mukaken
    mukaken 2021/10/29
    “教えて欲しいことOCaml で Parser Combinator を 0 から作る”
  • プログラミングの基礎 PHPで応用を考えてみる。 - Qiita

    はじめに 浅井健一さん著書の『プログラミングの基礎』 というがあります。 このの趣旨として正しいコードを書くための道標となる「デザインレシピ」というものがあります。 ・どのようにメソッドを作れば良いのか? ・正しいプログラムを作るにはどうすれば良いのか? 著者が提唱するデザインレシピに沿って書けばこのような疑問を払拭できるのです。 このではOCamlという関数型言語を用いて説明がされています。 しかしながら、他の言語でも応用が効くんじゃないか?と考え PHPでも応用できるのではないかと思いまとめてみました。 メソッド定義に関するデザインレシピ デザインレシピはプログラム作成時に従うべき指針を提示してくれます。 重要なポイントをまとめると ①目的: 作成するメソッドが何をするものなのか。何を受け取り何を返すのかを考える ②例: 目的をより具体的に落とし込む作業。作成するメソッドに望まれ

    プログラミングの基礎 PHPで応用を考えてみる。 - Qiita
    mukaken
    mukaken 2021/06/21
    “浅井健一さん著書の『プログラミングの基礎』…OCamlという関数型言語を用いて…PHPでも応用できるのではないか”
  • Docker上にOCaml+Coqの環境を構築して動かしてみるまで - Qiita

    はじめに CoqをDocker上にインストールしたのでその手順をまとめます。 CoqのコードはOCamlに変換できるので、変換したコードをOCamlから呼び出してみます。 Dockerのインストールは済んでいる前提で進めていきます。 OPAMのインストール OCaml、CoqをインストールするためにまずOPAMをインストールします。 OPAMはOCamlのパッケージマネージャです。 OPAMをインストールするとOCamlは自動的に入りますが古いバージョンなので新しいバージョンを別にインストールします。 Alpine Linuxのコンテナを起動します。

    Docker上にOCaml+Coqの環境を構築して動かしてみるまで - Qiita
  • Bunlog | 読んで良かった入門技術書

    以前インフラ分かんね~って言ってるフォロイーがいたので、何となく「この良いよ~」っていうツイートをしたところ、そこそこ反応があって、ちょっと意外でした。 Web 開発の入門レベルの技術書なんてもう大体定番決まってるしみんなまとめてるじゃん、って思ってたんですが、「初めての一歩のその次のレベル」の入門書についてはちょっと需要あるっぽいです。 私は駆け出しに何度も成功している駆け出しエンジニアのプロなので、入門レベルの技術書についてそこそこ詳しくなっています。なのでここでは自分が読んで良かったと思った入門レベルの技術書を書いていきます。随分前に読んだものも含んでて、もしかしたら内容間違ってるかもしれないんで、指摘してくれればありがたいです。また各ジャンルの名称はマジで適当なので許してください 言語処理系とか オブジェクト指向でなぜつくるのか 第 2 版 「オブジェクト指向 入門」って検索した

    Bunlog | 読んで良かった入門技術書
    mukaken
    mukaken 2021/04/15
    “プログラミングの基礎”は、いいよね!
  • "プログラミングの基礎" を読んだ - CubicLouve

    2ヶ月かけてプログラミングの基礎というを読みました。 このを読んだきっかけ このは2013年くらいに @kis におすすめされたでした。 購入日は2013/05/29 買ってすぐ読んだ記憶があるのですが、2章くらいまでで読むのをやめた気がします。 その後、数回を開いた記憶があるのですが、どの場合も途中で読むのを止めていました。 で、2020年になってLeetCodeなどをやり始めたのですが、解法やアルゴリズムは理解できるがプログラムに落とし込めない(特に再帰が想像できない)という課題がでてきました。 問題に一対一対応させて覚えていくという力技よりは、もっと根となるコードを書く能力を高めないと先がないなあと思って、色々を読んでみました。 最初はSICPとかを眺めて見ましたが、理解が進まず挫折。。。 その後、SICPより読みやすくてなにかないかと探してみたところ、再度このを取る

    "プログラミングの基礎" を読んだ - CubicLouve