インプレス NextPublishing 関数型言語で学ぶプログラミングの基本 著者:川井 俊輝 抽象度の高いプログラミングのスキルを身につける! 関数型プログラミングへの関心が高まる中、多くのプログラミング言語がその核心的な概念を採用しています。この流れを受け、本書ではOCamlという関数型プログラミング言語を通じて、関数型プログラミングの基礎及びその応用について詳しく解説します。 OCamlは、その直感的な文法と高度な抽象化機能を備え、複雑なアプリケーションの開発に適しています。「OCamlとは何か?」「実際に使い物になるのか?」と疑問を持つかもしれませんが、OCamlの学習は関数型プログラミングの理解を深め、さまざまな言語でのプログラミングスキルの向上につながります。 OCamlで学ぶことにより、プログラミングの基本的な概念を習得し、他言語にも適用可能なプログラミング技術を手に入れる
メモです。 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#はいずれもそうして
動機 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 大西さんが動画の中で感極まっていたけど、宮川さ
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や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
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
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
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
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
こんにちは、SWETの鈴木穂高(@hoddy3190)です。 現在SWETチームにて仕様の欠陥をなるべく早くみつける取り組みにチャレンジしています。 欠陥をみつけるタイミングが早ければ早いほど、開発中の手戻りに伴うコストを抑えられます。 たとえば、仕様作成フェーズ、実装フェーズ、QAフェーズの順で開発が進んでいくときに、仕様の欠陥が実装フェーズやQAフェーズでみつかると実装やQAのやり直しを引き起こしかねません。 そうした大きな手戻りを抑えるために仕様の欠陥をなるべく仕様作成フェーズでみつけることを目指します。 対象領域に出てくる要素をモデリングすることは、仕様に潜む欠陥を開発の早い段階でみつけるための、有効な手段のひとつです。 要素には、開発者がこれから作るシステムや、そのシステムのユーザー、そのシステムと直接的または間接的に相互作用する外部のシステムが含まれます。 単に図を書くというモ
先日こういうツイートがあった: Haskellとかの関数型言語を使用しているプログラマの皆様にお聞きしたいんですけど、「関数名 引数 引数 ...」みたいな関数呼び出し構文って見にくくは無いですか?「関数名(引数, 引数, ...)」に慣れたこちらからすると、丸括弧が無いからコード中のどこが関数呼び出しなのかパット見で把握しにくい。— sounisi5011/プログラム (@sounisi5011Prog) February 22, 2022 「見にくくは無いですか?」と聞かれると、個人的には「全然大丈夫です」と答えざるを得ないのだが、次のツイートに関しては考えさせられた: 数式でも函数には丸括弧を使ってるのに、どこのタイミングで丸括弧が消失したのかわからないし、その選択をした理由も思いつかない。— sounisi5011/プログラム (@sounisi5011Prog) February
はじめに ブラウザ上で動くゲームボーイエミュレータを OCaml で書きました。以下のページで試せます。 デモページ いくつかの homebrew ROM も一緒になっているのでいろいろ遊んでみてください。おすすめは「Bouncing ball」と「Tobu Tobu Girl」です。最近のスマホならだいたい安定して 60 FPS 出るはずなので、スマホでも遊べます。 レポジトリはこちらです。 スクリーンショット なぜ OCaml でゲームボーイエミュレータ?新しいプログラミング言語を学ぶ過程で以下のように思ったことはないでしょうか? 簡単なプログラムなら書けるが、中規模以上のコード1をどうやって書けばよいのか分からない 発展的な言語機能2も勉強しなんとなく理解した気になったが、実践のなかでどのように活用すればいいのかが分からない OCaml を本格的に勉強し始めてた数ヶ月前の筆者はまさに
追記 一旦締め切りました。 連絡をくださった方、書籍などのアドバイスをくださった方ありがとうございます。 本文 謝礼をお支払いするので、教えて欲しいことがあります。 自習しろと言われそうですが、試行錯誤するには人生が短すぎたり、爆速突破するには能力が足りなかったりで色々辛くなってきたので何卒。 以下、学びたい優先度順です。同時に学べるのは多くて 2 つで、被った場合は優先度順でお願いすることになります。 教えて欲しいこと OCaml で Parser Combinator を 0 から作る 狙い: 関数型プログラミング言語とそれの使い方を学びたい。また、OCaml のエコシステムに詳しくなりたい。 Monadic Parser をゼロから作ることで、関数型プログラミングのテクニックや考え方を学びたいです。 すでに 教科書的な簡単な Monadic Parser を 0 dependenci
はじめに 浅井健一さん著書の『プログラミングの基礎』 という本があります。 この本の趣旨として正しいコードを書くための道標となる「デザインレシピ」というものがあります。 ・どのようにメソッドを作れば良いのか? ・正しいプログラムを作るにはどうすれば良いのか? 著者が提唱するデザインレシピに沿って書けばこのような疑問を払拭できるのです。 この本ではOCamlという関数型言語を用いて説明がされています。 しかしながら、他の言語でも応用が効くんじゃないか?と考え PHPでも応用できるのではないかと思いまとめてみました。 メソッド定義に関するデザインレシピ デザインレシピはプログラム作成時に従うべき指針を提示してくれます。 重要なポイントをまとめると ①目的: 作成するメソッドが何をするものなのか。何を受け取り何を返すのかを考える ②例: 目的をより具体的に落とし込む作業。作成するメソッドに望まれ
以前インフラ分かんね~って言ってるフォロイーがいたので、何となく「この本良いよ~」っていうツイートをしたところ、そこそこ反応があって、ちょっと意外でした。 Web 開発の入門レベルの技術書なんてもう大体定番決まってるしみんなまとめてるじゃん、って思ってたんですが、「初めての一歩のその次のレベル」の入門書についてはちょっと需要あるっぽいです。 私は駆け出しに何度も成功している駆け出しエンジニアのプロなので、入門レベルの技術書についてそこそこ詳しくなっています。なのでここでは自分が読んで良かったと思った入門レベルの技術書を書いていきます。随分前に読んだものも含んでて、もしかしたら内容間違ってるかもしれないんで、指摘してくれればありがたいです。また各ジャンルの名称はマジで適当なので許してください 言語処理系とか オブジェクト指向でなぜつくるのか 第 2 版 「オブジェクト指向 入門」って検索した
2ヶ月かけてプログラミングの基礎という本を読みました。 この本を読んだきっかけ この本は2013年くらいに @kis におすすめされた本でした。 購入日は2013/05/29 買ってすぐ読んだ記憶があるのですが、2章くらいまでで読むのをやめた気がします。 その後、数回本を開いた記憶があるのですが、どの場合も途中で読むのを止めていました。 で、2020年になってLeetCodeなどをやり始めたのですが、解法やアルゴリズムは理解できるがプログラムに落とし込めない(特に再帰が想像できない)という課題がでてきました。 問題に一対一対応させて覚えていくという力技よりは、もっと根本となるコードを書く能力を高めないと先がないなあと思って、色々本を読んでみました。 最初はSICPとかを眺めて見ましたが、理解が進まず挫折。。。 その後、SICPより読みやすくてなにかないかと探してみたところ、再度この本を取る
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く