2024年バージョンの全面改定された新しい本が公開されているので移動してください 関数型プログラミングをゼロからわかりやすく実用的に幅広い視点から解説!〜 圏論からFRPの構築まで a岡部 健Ken Okabekentutorialbook@gmail.com 関数型プログラミングが『銀の弾丸』である という非常識な常識 2022Functional Programming as the Silver bullet, that is the Insane common sense 2022
お知らせ: 2022/9/1 CS50 を活用した非営利/協賛企業による「コロナ学生支援」プロジェクトを実施中 ▼ 学生の方へ:CS50 の学習(履修証明書の取得)を一緒に取り組むプロジェクト CS50日本語版の翻訳コントリビューターである CODEGYM が主催する、非営利/無償のプロジェクト「CODEGYM Academy (外部リンク)」は、昨年に続き2022年度(春/秋)も、キャリア選択を控えた学生に対し、以下の企業の協賛により無償で17週間のプログラミング教育カリキュラムを提供します。 CODEGYM Academy 協賛企業(2022年) https://codegym.jp/academy/ 今年度のエントリーは締め切りました — ようこそ! このページは、ハーバード大学 CS50 の日本語版翻訳プロジェクトのページです。当サイトのドメインに掲載されているコンテンツは、Cre
プログラミング用フォント Myrica Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。 視認性、判別性 が高くなるように、複数のフォントファイルを元に合成/修正しました。 フォントの特徴 多くの特徴をプログラミング用フォント Ricty から継承しています。 ASCII文字は「Inconsolata」が適用されます。 それ以外の文字には「源真ゴシック」または「Mgen+」が適用されます。 半角文字と全角文字の横幅の比が 1:2 に調整されています。 視認性の高い日本語文字 (半濁音など) が使用できます。 Rictyにない特徴 以下の文字にはヒンティング情報がありますので、Windowsでもクッキリしています。 ASCII文字はヒンティング付きの Inconsolata から、ヒンティング情報を継承しています。 平仮名と片仮名にもヒンティング情報を付
かとじゅんさんのお誘いで、私塾匠真堂にて登壇させていただき、Rust に関する話をさせていただきました。ありがとうございました。 今回のセッションを通じて Rust を始めたくなった方向けに、Rust をはじめるための資料をいくつかリストアップしてます。よかったらどうぞ。 プログラミング言語の学習方法について Rust についてまず概観を掴む 文法を学ぶ 何かアプリケーションを実装してみる ちょっと突っ込んだ話を知りたい コミュニティの力を借りる 仲間を見つける 更新履歴 プログラミング言語の学習方法について みなさんは新しいプログラミング言語を学ぶ際、どのように学びますか? 私は、軽く制御構文やデータ型の作り方などを学んだ後は、すぐにアプリケーションを作ってみて、詰まったらリファレンスを参照するといった学び方をしていることが多いです。 逆に、リファレンスをまず眺めて、文法をしっかり把握し
私たちはこのオープンソースプロジェクトを世界中の人々に提供したいと考えています。このチュートリアルの内容をあなたが知っている言語に翻訳するのを手伝ってください。
最終更新日: 2021年4月1日 「自分でAIを作ってみたい」と思ったことはありませんか?プログラミングでAIを作ることは決して難しいことではありません。 Pythonというプログラミング言語のライブラリ機能を駆使することで、誰でも簡単にAIを実装できるようになります。さらに学習を進めることで、オリジナルのAIサービスを開発することも可能です。 この記事では、「AIプログラミング入門」として、初心者向けにAI・プログラミングの勉強方法を紹介していきます。 プログラミング学習を始めるメリット まず、AIを勉強するためにプログラミング学習を始めるメリットは何なのでしょうか。 AIをプログラミングで再現することで、AIに対する知識や理解が深まることは言うに及ばず、プログラミングというスキルを習得することにはさまざまなメリットがあります。 初心者でも始めやすい AI開発で主に用いられる言語はPyt
尽く書を信ずれば即ち書無きに如かず 《孟子『尽心下』より》 イントロダクション 「最も理想的なオブジェクト指向を実現しているプログラミング言語は何か?」と問われたとき、君は何と答えるだろうか? C++、Java、C#。君がそうだと思っているのは表面だけで、たぶん何もわかっていないのだろう。無知であることを知っているのであれば、無知のまま過ごした方が幸せなときもある。 Simula、Smalltalk、Ruby。君は本質をいくらか知っているようだから、引き返すなら今のうちだろう。深淵を覗けば、君もまた怪物にならざるを得ない。 JavaScript、Python、Go。君が真剣にそう答えるなら、私とは異なる真理に辿り着けたのだろう。君と私のどちらかが正しいのではない、どちらも常に正しく、どちらも常に間違っている。 Erlang、Elixir。君は既に答えを知っているようだから、この記事は全く以
人間の知能を模した人工物をつくること、それが人工知能研究だ。その中で重要な役割を占めるのが「機械学習」の研究である。機械学習とは、コンピューターに人間が持っているような学習能力を獲得させる取り組みだ。今日の人工知能研究において欠かせないこのトピックについて、本記事では掘り下げる。 人間の知能を模した人工物をつくること、それが人工知能研究だ。その中で重要な役割を占めるのが「機械学習」の研究である。機械学習とは、コンピューターに人間が持っているような学習能力を獲得させる取り組みだ。今日の人工知能研究において欠かせないこのトピックについて、本記事では掘り下げる。 人工知能の進化を担う、機械学習の最前線 近年の機械学習研究でもっとも注目されているのが「神経回路網(ニューラルネットワーク)」を多層化することで、より複雑な処理を可能にした「深層学習(ディープラーニング)」だ。 ニューラルネットワークと
Windows Subsystem for Linux (WSL)でX Windowを使えるようにします.こちらの記事とこちらの記事を参考にさせて頂きました. VcXsrvのインストール X Window serverはVcXsrvを利用します.Windows10上でダウンロードし,ダブルクリックしてデフォルトのままインストールします.以前はxmingを使っていましたが,フリーのものは非常に古く,最新版は寄付版といい,ソースコードは無料で入手可能ですが,バイナリは寄付しないと入手できないようです. Ubuntuでライブラリ,パッケージのインストールと設定 以下のように必要なパッケージ等をインストールします. [cc] $ sudo apt install git build-essential libssl-dev libreadline-dev zlib1g-dev x11-apps x
いま学ぶべき第二のプログラミング言語はコレだ! 未来のために挑戦したい9つの言語とその理由 業務に必要なだけではなく、コンピュータによって問題解決できていない分野を切り開き、エンジニアとして戦っていくため、刺激的な第二プログラミング言語に挑戦しましょう。Rust、Go、Erlang、Elixir、Clojure、Scheme、OCaml、Haskell、Scalaを紹介します。 みなさんが使えるプログラミング言語はいくつあるでしょうか? ひとくちに「使える」といっても、ひととおりのチュートリアルは終えたという段階もあれば、言語仕様(あれば)やライブラリを知り尽くしていて、思いついた処理を即座にコード化できるという段階もあります。リファレンスとか参考書を見ながらであれば使える、ということも多いでしょう。 ベテランエンジニアなら、いろいろな仕事に携わっているうちに、さまざまな環境でそれぞれ必要
平成30年3月9日(金) 9:30~11:30 公益財団法人全国市長会館 第1会議室(3階) (〒102-0093 東京都千代田区平河町2-4-2)
PHP 5.3 がリリースされてもう 5 年以上経ちます。 5.3 で無名関数 (Closure) が使えるようになってからは、高階関数を使うなどした関数型っぽいアプローチの可能性が広がりました。 中でも nikic/iter は関数型のコレクション操作を行う上で非常に便利なライブラリです。 ですが、関数を単純にラップする記法では、関数を重ねたときに読みづらく感じる人もいるでしょう。 オブジェクト指向的なメソッドチェインと違って、読み下す順番と、実際の実行順序が逆行するところに原因がある気がします。 以下は 1 から 10 までの数列の全要素を 2 倍してから全て足し合わせる例です。 use function iter\fn\operator; use function iter\map; use function iter\range; use function iter\reduce;
25. $range = function ($start, $end, $step = 1) { for ($i = 1; $i <= $end; $i += $step) { yield $i; } }; ! foreach ($range(1, 100) as $n) { echo $n, PHP_EOL; } ジェネレータでrange
などと省略して書けます。 echo と print は(ほぼ)同じものですが、 echo の方が文字数が少ないので(笑)オススメです。 flush関数を使うと、出力を即座にブラウザに表示させることができます。 長く実行時間のかかる処理で、途中経過を逐次表示させたい場合は、 flushを毎回呼び出すと良いです。 (実際には、flushとob_flushを両方呼ぶ必要があります) (例) flushを使ったサンプル
リアクティブプログラミングは、「時間とともに変化する値」=「振る舞い」同士の関係性を記述することでプログラミングを行うパラダイムです。 GUIなどのようにインタラクティブなシステムや、シミュレーションやアニメーションのようにダイナミックに状態が変化するようなシステムを宣言的に記述することができます。 これらの「変化する状態」や「外部とのやりとり」が支配的なシステムは、純粋関数型言語が、その強みを発揮しにくい部分でもあります。 本稿では、リアクティブプログラミングが副作用を含む系を宣言的に記述することを可能にし、状態の管理という厄介な問題からプログラマを開放する可能性があることを示したいと思います。 (割と独自研究に基づく解釈ばかりなのでその点ご了承ください。あと例としてでてくるコードは、Pythonベースの擬似コードで具体的なライブラリに基づくものではありません。) Why Reactiv
あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを理解することで、よりよいプログラムを書くためのもので、正確なソフトウェア工学の歴史を学ぶためのものではありません。正確な歴史を把握したい場合は、原典をあたるようにしてください。 また、想定している読者は「よくあるオブジェクト指向プログラミングの学習」を既にし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く