書籍『関数型ドメインモデリング』や、原著者のサイト https://fsharpforfunandprofit.com/ に書いてある内容の紹介です。 2024/09/07 Learn Languages 2024 https://event.ospn.jp/odc2024/session/…
なっとく!関数型プログラミング 作者:Michał Płachta翔泳社Amazon 良い、買おう、読もう、(コードを)書こう、以上! めっちゃ良いですよ、この本 中盤のプリミティブじゃやりづらい→直積→直和→二つ合わせてADT→値を取り出すためのパターンマッチの解説の流れの疾走感がいいですね— magnoliak🍧 (@magnolia_k_) 2023年8月6日 『なっとく!関数型プログラミング』は、2022年に出版された『Grokking Functional Programming』の邦訳版で、主にScalaを題材として関数型プログラミングを学んでいくための入門書("Grokking"は、完全に理解する、という意味)。あくまで関数型プログラミングの考え方、コードの書き方、良い設計の指針の解説が主眼に置かれているので、Scalaの言語機能の入門書ではない。Scalaの言語仕様を網羅
私がJavaScriptが好きになったきっかけのひとつは、JavaScriptにおける関数は第1級オブジェクトだということを知ったことだったと思います。要はJavaScriptでは関数を変数に代入したり、関数の引数や戻り値に関数を使ったりできるというわけですね。そのためJavaScriptではオブジェクト指向プログラミングだけでなく、関数型プログラミングも可能となっています。 数年前からエンジニア業界では、関数型プログラミングがオブジェクト指向プログラミングに変わる次のプログラミングスタイルとして注目されているそうです。ただ、私の場合は「勉強しよう」と意識して取り組んでいたわけではなく、JavaScriptに触れているうちに自然と関数型的な考え方に引き寄せられていたという感じでした。個人的に、関数に関数を渡していくという考え方が、オブジェクト指向的な考え方よりしっくりくると感じたのです。
はじめに 普段はReactやReactNativeを使ってWebやネイティブアプリ開発を行っています。 これらを扱っていくにあたり、関数型プログラミングの考え方に触れることが多く、ひいては「高階関数」や「カリー化」といった用語の理解が必要となります。 人に教えていくと、このあたりのイメージが掴みにくいようなので、いったんソースを追う形で整理していきたいと思います。 なお、この記事ではReactやReactNativeを利用しない方のために「高階関数」と「カリー化」の説明に留めています。 「高階コンポーネント」についてはいずれ別記事にて解説していく予定です。 第一級関数 高階関数を理解するにあたって「第一級関数」という用語を知っておく必要があります。 第一級関数のWikipediaには以下のような説明があります。 関数を第一級オブジェクトとして扱うことのできるプログラミング言語の性質、または
先日Connpassにて、関数型プログラミングなんもわからん。を考えようと言うイベントを開かせていただきました。 関数型プログラミングがわからない! と言う方達の疑問に対して、普段関数型プログラミング言語を使っているわかる人たちが回答をして行くと言うスタイルのイベントでした。関数型プログラミング言語と一口に行っても、Elm, Scala, Haskell, Clojure, Elixir, F#と様々な言語があり(これは今回参加した人たちの使っている言語で、関数型プログラミング言語の一部にしか過ぎません)何が正解かなどはわからない中での意見の集約といった形のため参考程度にご覧ください。結果イベントとしては様々な視点からの意見が聞けて満足という声が多かったです。私自身知らないことがたくさん知れて勉強になり楽しかったです。 イベントの内容は、Figma上で開けるFigJamファイルとして、公開
こんにちは、小林(@koba04)です。 本記事では、シングルページアプリケーション(以下、SPA)における状態管理について解説します。 GmailやTwitterは、SPAとして構築されている代表的なWebアプリケーションであり、スムーズなページ遷移をSPAによって実現しています。またElectronやPWA(Progressive Web Apps)の登場により、複雑なアプリケーションをWebの技術を使って構築する場面も増えてきました。 これらの複雑なアプリケーションにおいては、既存のページ単位での状態管理の考え方では対応が難しくなります。 そこで今回は、具体的なフレームワークも取り上げながら、Webフロントエンドにおける状態管理のアプローチについて紹介します。 フロントエンドでの状態管理の複雑化 ページの単位を超えた状態の保持 モデルとビューによる処理の分割 イベントの管理が複雑にな
jsCafe16(2013/11/10)で話したjavascriptでの関数型プログラミング入門の話です。Read less
前置き ( ※ 読み飛ばしていただいても OK ) JavaScript は関数型ライクなエッセンスを一部含んではいるものの、決して Haskell のような純粋関数型言語ではありません。JavaScript では変数やオブジェクトの状態を自由に書き換えるようなプログラミングスタイルを通常としているからです。したがって JavaScript で関数型プログラミングをまともに行うのは本来ナンセンスなのかもしれません。しかし関数型の持つ要素の一部だけを取り入れたプログラミングをすることは可能であり、これらを習得することは大規模かつ堅牢な web アプリケーションを設計するのに少なからず恩恵をもたらします。また、 JavaScript には Underscore.js / Lodash や Immutable.js、 Ramda.js といった便利なリスト操作ライブラリや RxJS のような非同
前置き ( ※ 読み飛ばしていただいても OK ) JavaScript は関数型ライクなエッセンスを一部含んではいるものの、決して Haskell のような純粋関数型言語ではありません。JavaScript では変数やオブジェクトの状態を自由に書き換えるようなプログラミングスタイルを通常としているからです。したがって JavaScript で関数型プログラミングをまともに行うのは本来ナンセンスなのかもしれません。しかし関数型の持つ要素の一部だけを取り入れたプログラミングをすることは可能であり、これらを習得することは大規模かつ堅牢な web アプリケーションを設計するのに少なからず恩恵をもたらします。また、 JavaScript には Underscore.js / Lodash や Immutable.js、 Ramda.js といった便利なリスト操作ライブラリや RxJS のような非同
前置き ( ※ 読み飛ばしていただいても OK ) JavaScript は関数型ライクなエッセンスを一部含んではいるものの、決して Haskell のような純粋関数型言語ではありません。JavaScript では変数やオブジェクトの状態を自由に書き換えるようなプログラミングスタイルを通常としているからです。したがって JavaScript で関数型プログラミングをまともに行うのは本来ナンセンスなのかもしれません。しかし関数型の持つ要素の一部だけを取り入れたプログラミングをすることは可能であり、これらを習得することは大規模かつ堅牢な web アプリケーションを設計するのに少なからず恩恵をもたらします。また、 JavaScript には Underscore.js / Lodash や Immutable.js、 Ramda.js といった便利なリスト操作ライブラリや RxJS のような非同
前置き ( ※ 読み飛ばしていただいても OK ) JavaScript は関数型ライクなエッセンスを一部含んではいるものの、決して Haskell のような純粋関数型言語ではありません。JavaScript では変数やオブジェクトの状態を自由に書き換えるようなプログラミングスタイルを通常としているからです。したがって JavaScript で関数型プログラミングをまともに行うのは本来ナンセンスなのかもしれません。しかし関数型の持つ要素の一部だけを取り入れたプログラミングをすることは可能であり、これらを習得することは大規模かつ堅牢な web アプリケーションを設計するのに少なからず恩恵をもたらします。また、 JavaScript には Underscore.js / Lodash や Immutable.js、 Ramda.js といった便利なリスト操作ライブラリや RxJS のような非同
Forrester Researchは2017年12月に関数型プログラミングに関するレポート「The New Dawn Of Functional Programming」(関数型プログラミングの新たな夜明け)を発表した。関数型プログラミングは新しいコンセプトではないが、ITプロフェッショナルにとって、「関数を第一級オブジェクトにする」という考え方は、向こう18カ月のうちに避けて通れないものになろうとしている(既にあなたのレーダーに捕捉されていなければの話だが)。とはいえ、関数型プログラミングは一部の先進的な開発者にとってさえも難解なコンセプトだ。本記事では関数型プログラミングについて知っておくべきことを解説する。 関数型プログラミングとは何か? 関数型プログラミングはプログラミングパラダイムの1つだ。簡単な言葉で説明すると、手続き型プログラミングはソフトウェアに対して「何かを行う際の方法
■F#とは F#は、マイクロソフト社製のプログラミング言語で、Visual Studio 2010から標準搭載されている。まずは、F#がどのような言語なのかを見てみよう。 ●マルチパラダイム言語「F#」 F#は複数のパラダイムをサポートするマルチパラダイム言語だ。F#がサポートするパラダイムには、 手続き型 関数型 オブジェクト指向プログラミング などがある。 マルチパラダイム言語であるため、C#やVB(Visual Basic)といった従来の.NET言語を置き換える形でF#を使うこともできる。しかし、本記事ではF#のメインとなるパラダイムである「関数型」にフォーカスを当てて紹介していく。 ●関数型言語「F#」 F#は、静的型付けの関数型言語である「OCaml」に強い影響を受けている。そのため、F#の主となるパラダイムは関数型プログラミングになる。 さて、関数型言語とは何だろうか? この問
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く