背景・動機 業務でReduxを利用していますが、公式サイトに以下のようなコードが現れビビったので調べました。
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
【TypeScript】カリー化・部分適用は便利だよ! カリー化・部分適用利用してますか? 調べたけど「関数を第一級オブジェクトとしてー」とか「関数を部分適用してー」とか説明が講義っぽくて途中で諦めた方も多いと思います。自分もそうでした。 また、知ってるけどどんな時に使うべきか迷って使ってないという方もいると思います。 具体的なコードを交えながら、カリー化・部分適用について、噛み砕いて説明していきたいと思います。 なお、すべてのTypeScriptのサンプルコードは実際に動かして確認することができますので、TypeScript Playgroundなどで是非お試しください。 カリー化と部分適用 まずはカリー化と部分適用の定義をば。 カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引
カリー化と部分適用 先日同僚にカリー化を説明する機会がありました.その際に,簡潔に説明に適した自分用の資料があるといいなと思いましたので,こちらの記事を書くことにしました. この記事ではカリー化と部分適用について解説します.歴史等には触れずにただその内容について述べます. 混同しやすいという情報があるのですが,割と違うレイヤの話なのでなぜなのかは不明ですが,関連性に関する私見も末尾に書いておきます. カリー化 カリー化 (Currying)[1]とは 複数の引数を取る関数を,単一の引数を取る関数に翻訳する手法 のことです. 簡単な例を見ます.以下のような2つの引数を持つ関数を考えます. const add = (a: number, b: number) => a + b; console.log(add(1, 3)); // 4 関数を値のように返す関数のことを高階関数と呼びます. カリ
タイトルは釣りではなくて、普通に真面目な話です。 結論だけ書くと、カリー化という手法を使う意義は、概念的には、N個の引数をとる関数という概念を、1個の引数をとる関数だけを使って表現できること、実用的にはそういう風に表現することによって、関数の前からの部分適用が簡単にできることですが、Scalaの場合は前者については、普通にN引数メソッドやN引数関数があるので意味がないし、後者については、そのための専用構文があるので有用性が微妙ということになります。 で、それだと色々すっ飛ばし過ぎなので、カリー化ってそもそも何をするものなのか、についてざっくりと説明します。カリー化というのは、Scalaでいうと、たとえば、2引数の足し算をする関数を
(株)インプレスR&Dは、書籍『JavaScript徹底攻略 関数編』(著:澁谷真帆氏)を7月22日に発売した。価格は、電子版が1,760円、印刷版が2,200円。 本書は、プログラミング言語「JavaScript」の関数の使い方を徹底的に解説したもの。関数定義の書き方や関数の呼び出し方といった基礎から、クロージャや再帰の応用、関数型プログラミングの理論的な概要までを扱う。「Google Chrome」や「Microsoft Edge」、「Firefox」などの主要なWebブラウザーをサポートしている「ECMAScript 2021」にも対応している。 また本書では、一般的な入門書ではあまり触れられることのない、「関数のカリー化」や「無名再帰と不動点コンビネータ」、「末尾呼び出しとその現状」、「ファンクタやモナド」といったちょっとした応用テクニックも掲載。「JavaScript」関数の基本
はじめに アロー関数は前提知識。 カリー化を一言 関数を返す関数によってプログラムの共通化を図り、堅牢で安全なプログラムを作る。 カリー化の理論的な説明 複数変数を取る関数がある その関数を1変数を取り、関数を返す関数に分解する or wikipediaの説明 関数 f が {\displaystyle f:(X\times Y)\to Z} の形のとき、f をカリー化したものを g とすると、 g:X\to (Y\to Z) の形を取る わからない?それがふつう 私も最初はチンプンカンプン 具体例 やりたいこと 2つの数を引数に受け取り、それらを足す関数addを定義したい まずは普通に 普通に考えれば
はじめに 普段はReactやReactNativeを使ってWebやネイティブアプリ開発を行っています。 これらを扱っていくにあたり、関数型プログラミングの考え方に触れることが多く、ひいては「高階関数」や「カリー化」といった用語の理解が必要となります。 人に教えていくと、このあたりのイメージが掴みにくいようなので、いったんソースを追う形で整理していきたいと思います。 なお、この記事ではReactやReactNativeを利用しない方のために「高階関数」と「カリー化」の説明に留めています。 「高階コンポーネント」についてはいずれ別記事にて解説していく予定です。 第一級関数 高階関数を理解するにあたって「第一級関数」という用語を知っておく必要があります。 第一級関数のWikipediaには以下のような説明があります。 関数を第一級オブジェクトとして扱うことのできるプログラミング言語の性質、または
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く