タグ

_とFPに関するjsstudyのブックマーク (10)

  • JavaScriptでラムダ計算の仕組みを学ぶ教材 - JavaScript勉強会

    関数型プログラミングの理解を深めるために、OCamlのを読んでいます。 プログラミングの基礎 (Computer Science Library) 作者: 浅井健一 出版社/メーカー: サイエンス社 発売日: 2007/03/01 メディア: 単行 購入: 17人 クリック: 409回 この商品を含むブログ (127件) を見る 「簡約」について調べていたら、分かりやすい説明の記事がありました。 tarao.hatenablog.com ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を

    JavaScriptでラムダ計算の仕組みを学ぶ教材 - JavaScript勉強会
    jsstudy
    jsstudy 2019/08/03
    簡約(ラムダ計算の実行)の様子を確認できるツール LambdaJS
  • Ramda.jsのLensとは? - JavaScript勉強会

    JavaScript関数型プログラミング」を読んでいたら、意味がよく分からない用語が出てきたのでメモ。 jsstudy.hatenablog.com レンズ (p.48) レンズ(Lenses)と呼ばれる関数型のアプローチ レンズは、オブジェクトの変更を普遍的に一括管理する最良の選択肢です。 (純粋な)関数参照とも呼ばれるレンズは、状態を持つデータ型の属性を不変的にアクセスし操作できる関数型プログラミングのソリューションです。 レンズの内部的な動作はコピーオンライトに似ており、状態の管理と複製を適切に処理できる内部ストレージコンポーネントを利用しています。 しかし、レンズを自分で実装する必要はありません。 関数型JavaScriptライブラリRamdaの実装を利用できます。 JavaScriptでデータを可変ではなく不変で扱いたい場合、Ramda.jsという関数型ライブラリーのLensと

    Ramda.jsのLensとは? - JavaScript勉強会
    jsstudy
    jsstudy 2019/05/01
    JavaScriptで関数型プログラミングを行う場合、データを不変(immutable)にして扱いたい。その1つの方法として、Ramda.jsのLensという機能を使うと便利。Lensは元々Haskellのパッケージからアイデアから取ってきたものらしい。
  • ハッカーと画家 - JavaScript勉強会

    最近、「関数型プログラミングを学ぶ場合、教材は何がいいのか?」と考えてました。 検討する中で、Lispを推奨していたポール・グレアム氏の「ハッカーと画家」というを思い出しました。 ハッカーと画家 コンピュータ時代の創造者たち 作者: ポールグレアム,Paul Graham,川合史朗 出版社/メーカー: オーム社 発売日: 2005/01/01 メディア: 単行 購入: 109人 クリック: 4,884回 この商品を含むブログ (582件) を見る 以前読んだときは、あまりピンと来なかったけど、改めて読み直してみると、結構いいこと書いてあったんだな!と印象が変わりましたw 関数型プログラミングを学ぶときのモチベーションアップのために、書を参考にしてみたいと思います。 英語原文と日語訳 「ハッカーと画家」は、英語の原文がネットで公開されてました。 日語訳も一部が公開されてました。

    ハッカーと画家 - JavaScript勉強会
    jsstudy
    jsstudy 2018/11/09
    Yコンビネーターの創設者、ポール・グレアム氏のエッセイ。Lispのメリットを説明。関数型プログラミングに対する好奇心を高めて、学習のモチベーションとなる?
  • OCaml風にJavaScriptを書けるReasonML - JavaScript勉強会

    FacebookがOCaml風にJavaScriptを書ける「ReasonML」というAltJSを作っていました。 ReasonML - Google 検索 reasonml.github.io qiita.com OCamlは、関数型プログラミング言語の1つです。 OCaml - Wikipedia OCaml(オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。 MLの各要素に加え、オブジェクト指向的要素の追加が特長である。 最近、関数型プログラミングの勉強でOCamlのを読んだのですが、実際に使う機会はあまりなさそうだと思ってました。 プログラミングの基礎 (Computer Science Library) 作者: 浅井健一 出版社/メーカー: サイエンス社 発売日: 2007/03/01 メディア: 単行 購入: 1

    OCaml風にJavaScriptを書けるReasonML - JavaScript勉強会
    jsstudy
    jsstudy 2018/09/02
    ReasonML → OCamlに変換 → BuckleScriptでJSに変換 ReasonReactでWebアプリ制作に使える OCamlの応用として使ってみたい!?
  • 関数型プログラミングを追う日々 - JavaScript勉強会

    最近、関数型プログラミングの基礎知識を学ぶことに時間を割いています。 きっかけは、「関数型プログラミングの基礎 JavaScriptを使って学ぶ」というでした。 jsstudy.hatenablog.com Haskellに寄り道 「関数型プログラミングの基礎」を読んでいると、ちょいちょい「Haskell」の話が出てきます。 以前、話題になってたのでHaskellのを読んでみましたが、そのときはあまりよく分かりませんでした。(使う場面もなかったですw) 改めて、「Haskellって何だったんだろう?」と思って読み返してみると、「なるほど、そういうことだったのか~」と新たな気付きが得られました。 自分のスキル不足のため、Haskellで実用的なアプリを作る機会はないだろうけど、それでもHaskellは良くできたパズルみたいなかんじで、ちょっとしたコードを書いて練習してみるだけでも楽しめま

    関数型プログラミングを追う日々 - JavaScript勉強会
    jsstudy
    jsstudy 2017/09/06
    関数型プログラミングの作法を学ぶためにHaskellに寄り道。「JavaScript Ninja」→JavaScriptを使いこなすためには「関数」の使い方が重要、とのこと。
  • JavaScript ES2015の「末尾再帰」最適化 - JavaScript勉強会

    JavaScriptの勉強で、ES2015の「アロー関数」を使う必要が出ました。 Visual Stuidio Code+Node.jsでES2015のJavaScriptコードを動かしていますが、ブラウザーでES2015はもうちゃんと動くのでしょうか? Google Chromeなど、ブラウザーのES2015対応状況を調べてみました。 最新のモダンブラウザーは、ほぼES2015に対応してましたが、「末尾再帰の最適化」という機能だけ未対応のブラウザーが多かったです。(2017年8月現在) ECMAScript6(ES6、ES2015)のブラウザー対応一覧表 末尾再帰とは? 末尾再帰の最適化 末尾再帰の解説記事 関数型プログラミング まとめ ECMAScript6(ES6、ES2015)のブラウザー対応一覧表 各ブラウザーのES2015対応状況が一覧表になってました。 ECMAScript

    JavaScript ES2015の「末尾再帰」最適化 - JavaScript勉強会
    jsstudy
    jsstudy 2017/08/19
    モダンブラウザーのES2015対応状況→ほとんどOKだけど「末尾再帰」最適化(TCO)だけ対応が遅れている。(対応してたのはSafariだけ) TCOが必要なければ、ES2015はトランスパイルせずにそのままブラウザーで動かしてもOK?
  • JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ 【目次】 - JavaScript勉強会

    JavaScriptで学ぶ「関数型プログラミング」のがありました。 「JavaScript関数型プログラミング」というです。 屋で立ち読みしたら、面白そうだったので買っちゃいましたw JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ (impress top gear) 作者: Luis Atencio,株式会社イディオマコムニカ加藤大雄 出版社/メーカー: インプレス 発売日: 2017/06/09 メディア: 単行(ソフトカバー) この商品を含むブログを見る 目次 ■Part1 発想の転換とキーコンセプト 第1章 関数型で思考する 第2章 関数型言語としてのJavaScript ■Part 2 関数型のデザインとコーディング 第3章 データ構造の数を減らし、操作の数を増やす 第4章 モジュール化によるコードの再利用 第5章 複雑性を抑えるデザインパター

    JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ 【目次】 - JavaScript勉強会
    jsstudy
    jsstudy 2017/06/27
    JavaScriptの関数型プログラミングの本。FPの使いどころが分かる。ちょっと難しいけど、サンプルコードを動かせば意味は理解できる→頑張って読んでみよう!
  • RxJS メモ - JavaScript勉強会

    「RxJS」(Reactive Extensions for JavaScript)に関するメモ。(随時更新予定) RxJSは、JavaScriptで「関数型リアクティブプログラミング」(FRP, functional reactive programming)を行うためのライブラリーです。 情報源 検索 公式サイト ネットの記事 2017年 2016年 2015年 2014年 2010年 書籍 考察 情報源 「RxJS」に関するGoogle検索、公式サイト、ネットの記事、書籍などのまとめ。 検索 RxJS - Google 検索 公式サイト ReactiveX RxJS API Document GitHub - Reactive-Extensions/RxJS: The Reactive Extensions for JavaScript ネットの記事 2017年 (2017/02/1

    RxJS メモ - JavaScript勉強会
    jsstudy
    jsstudy 2017/05/15
    RxJSとは? Reactive Extensions for JavaScript http://reactivex.io/rxjs/
  • 1.3 ラムダ式とは? 【関数型プログラミングの基礎】 - JavaScript勉強会

    JavaScriptの学習メモ。 今日は「関数型プログラミングの基礎 JavaScriptを使って学ぶ」の第1章を読んでみます。 jsstudy.hatenablog.com 「ラムダ式」という記法(書き方)の発明 数学者、アロンゾ・チャーチ Alonzo Church ラムダ式 無名関数 関数宣言の問題点 関数定義と関数適用を分ける書き方 まとめ 「ラムダ式」という記法(書き方)の発明 (p.15) 数学者、アロンゾ・チャーチ Alonzo Church チューリング機械が発表されたほぼ同時期に、アメリカ数学者であるアロンゾ・チャーチは、全く別のアプローチで「計算」を定義しました。 それは「λ(ラムダ)計算」と呼ばれる数学の理論です。 アロンゾ・チャーチ - Wikipedia アロンゾ・チャーチ(Alonzo Church, 1903年6月14日 - 1995年8月11日)はアメリカ

    1.3 ラムダ式とは? 【関数型プログラミングの基礎】 - JavaScript勉強会
    jsstudy
    jsstudy 2017/05/10
    アロンゾ・チャーチ氏 ラムダ式の書き方 JavaScriptのラムダ式(無名関数、即時関数)はfunctionキーワードで定義 ES2015からアロー演算子(=>)でも定義できる(ただし、両者は働きがちょっと違うみたいなので注意!?)
  • 関数型プログラミングの基礎 JavaScriptを使って学ぶ 【目次】 - JavaScript勉強会

    JavaScriptの学習で面白そうながありました! 「関数型プログラミングの基礎 JavaScriptを使って学ぶ」というです。 このを参考にして関数型プログラミングのやり方に親しんでみたいと思います。 関数型プログラミングの基礎 JavaScriptを使って学ぶ 作者: 立川察理,長瀬嘉秀 出版社/メーカー: リックテレコム 発売日: 2016/10/29 メディア: 単行(ソフトカバー) この商品を含むブログを見る 目次 第Ⅰ部 関数型プログラミングの基礎 第1章 「計算」とは 第2章 なぜ関数型プログラミングが重要か 第Ⅱ部 JavaScriptによる関数型プログラミングの実践 第3章 心の準備 第4章 データの種類と特徴 第5章 プログラムをコントロールする仕組み 第6章 関数を利用する 第7章 高階関数を活用する 第8章 関数型言語を作る 第Ⅲ部 付録 第9章 Java

    関数型プログラミングの基礎 JavaScriptを使って学ぶ 【目次】 - JavaScript勉強会
    jsstudy
    jsstudy 2017/04/13
    JavaScriptを使って関数型プログラミングの考え方を学ぶ本 (p.96) Column 学習ツールとしての単体テスト → 勉強のコツはいろいろあると思いますが「プログラミング学習にテストを活用する」という発想が参考になりました!
  • 1