タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

TypeScriptとFPに関するjsstudyのブックマーク (3)

  • TypeScript(JavaScript)で関数型言語の機能をつまみ食いする - Qiita

    関数型言語のことなんて知らなくても、ただそこに便利な関数があるので使っていきましょうというお話です。 LodashやRamdaには、リスト操作やオブジェクト操作に関する便利な関数がたくさんあります。 ["a", "b"] と [1, 2] から { a: 1, b: 2 } を作る処理を思い浮かべてください。 何も知らなければforループを使って書いたりしそうですが、_.zipObjectやR.zipObjを知っていればこれを使うだけでできてしまいます。 以下で、Clojureのclojure.coreにあるよく使う関数を中心に、Lodash, Ramdaを使ったときにどうやって実現できるのか調べてみました。 調べてみた感想としては以下のとおりです。 JavaScript標準の関数ではまだまだ不足している部分が多く、LodashとRamdaは一長一短 Lodashは副作用がある関数(対象オ

    TypeScript(JavaScript)で関数型言語の機能をつまみ食いする - Qiita
  • そろそろJavaScriptに採用されそうなOptional Chainingを今さら徹底解説 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? みなさん、Optional Chaining使ってますか? 私は先日出たTypeScript 3.7 Betaを小さいプロジェクトに導入して使ってみました。これはとても快適ですね。 例によって、Optional ChainingはECMAScriptに対するプロポーザルの一つです。つまり、もうすぐ入りそうなJavaScriptの新機能です。プロポーザルはたくさんの種類がありますが、その中でもOptional Chainingはその高い有用性からこれまで多くの注目を集めてきました。Optional Chainingは2019年6月のTC3

    そろそろJavaScriptに採用されそうなOptional Chainingを今さら徹底解説 - Qiita
    jsstudy
    jsstudy 2019/10/21
    Haskell Maybe型 アントニー・ホーア「null参照を発明したのは1965年のことだった。私は単にそれが容易だというだけで、無効な参照を含める誘惑に抵抗できなかった。過去40年間で10億ドル相当の苦痛と損害を引き起こした」
  • TypeScriptで型レベル関数とRequired/DeepRequired型を作って型レベルプログラミング - falsandtruのメモ帳

    TypeScript 2.8で追加予定のConditional型とinfer prefixが開発版でリリースされたので型レベル関数と念願のRequired/DeepRequired型を作って型レベルプログラミングを可能にする。 型レベル関数 Conditional型はUnion型を展開するためEq<false, boolean>の結果はその非決定性からbooleanとなる。決定的な結果を返す関数はboolean型にのみ用意しておりDEq<false, boolean>はundefinedとなる。 type Falsy = undefined | false | 0 | '' | null | void; type Function = (...args: any[]) => any; type Class = new (...args: any[]) => any; export type

    TypeScriptで型レベル関数とRequired/DeepRequired型を作って型レベルプログラミング - falsandtruのメモ帳
    jsstudy
    jsstudy 2019/08/26
    Conditional型とinfer prefix TypeScriptで型レベルプログラミング(型依存プログラミング)が可能
  • 1