SlideShare a Scribd company logo
え !! JavaScript で
パイプラインを?
湘 . なんか #1
わいとん @ytnobody
出来らぁっ!
※ たぶん、きっとそのうちね・・・
2
3
私は わいとん です。
アイコン どんな人
• 零細システム開発会社のボス
• YAPC::Hakodate 2024 の中の人
• 大井町 .pm という集まりの言い出しっぺ
• バイクで山奥に入っていくのが週末の過ごし方
• 峠も好きですが攻略欲はないです、林道派なの
で。
• 関数型っぽいアプローチが好物
4
YAPC::HAKODATE 2024
アフターイベント
YAPC 函館市電 LT
2024-10-06( 日 ) 10:30-12:30
是非来てください!!!
5
パイプライン演算子 |>
• F# が最初に提供したらしい
• Elixir や Haskell, R 言語 (|> のかわりに & を使う ) などで利用可
能
• 左辺の結果を右辺の式に第 1 引数として渡す
6
例
Elixir の場合(パイプライン演算子を使わないとこうなる)
String.split(
String.upcase(
String.trim(
" Hello, world “
)
)
)
#=> ["HELLO," "WORLD"]
7
例
Elixir の場合(パイプライン演算子を使うとこうなる)
“ Hello, world ”
|> String.trim
|> String.upcase
|> String.split
#=> ["HELLO," "WORLD"]
すごく…
シェルっぽいです…
8
9
実はプロポーザルがでている
https://github.com/tc39/proposal-pipeline-operator
10
プロポーザルのステージ2とは
検討段階ではあるものの、かなり前向きかつ具体的である。
以下のようなアクションが行われている
1. 仕様のドラフト
• 提案仕様が詳細に書かれたドラフトがある状態
2. 実装の準備
• 実装に向けた準備が進められていて、コードに組み込むための計画
が行われている状態
3. フィードバックの収集
• 提案に対するフィードバックが収集され、必要に応じ仕様に修正が
入れられる
11
パイプラインにおける 2 つの提案
F# パイプライン
• value |> func1 |> func2 |> func3 のように書かれる
• 単項関数の呼び出しが完結に書けるのがメリット
• 右辺が単項関数であることが条件
• await / yield についてはそのままでは扱えない
Hack パイプライン
• value |> 100 + % のように書ける (% に value が入る )
• 右辺に単項関数以外の式もかけるのがメリット
• エラー検出において、 F# パイプラインよりも優れている
12
TC39 の反応
TC39=Ecma International’s Technical Committee 39
→ ECMAScript の仕様を策定・進化させるためのグループ。
• F# パイプラインを 2 回 reject しており、かなり否定的。
• Hack パイプラインに対しては概ね好意的。
• パイプライン演算子は暗黙的プログラミング手法であるという認
識をもつ一部のメンバーは、そもそも否定的。
• TC39 の中でもチャンピオングループは「どのパイプライン演算
子でも無いよりマシ」というスタンス。
13
いつ使えるようになるのか
現時点ではまだまだ先という予測しかできない
14
パイプラインを今つかいたいのじゃ!
という人は lodash/fp やら ramda やらを使うとよさそう
15
おしまい

More Related Content

PPTX
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
PPTX
zの力をPerlに持ってきた話 @湘.なんか #2 by わいとん a.k.a. ytnobody
PPTX
Elixirで関数型言語の設計を学ぶ - daimon.ex 2024-09-20
PPTX
finally (not finally)
PPTX
時を駆けるINSERT.pptx
PPTX
できる!サーバレスアーキテクチャ
PDF
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
PDF
L tthon
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
zの力をPerlに持ってきた話 @湘.なんか #2 by わいとん a.k.a. ytnobody
Elixirで関数型言語の設計を学ぶ - daimon.ex 2024-09-20
finally (not finally)
時を駆けるINSERT.pptx
できる!サーバレスアーキテクチャ
印刷に耐えられる品質のQRCodeをPerlで生成したよ! - Mishima.pm #1
L tthon

More from azuma satoshi (17)

PDF
Perlbeginnes 9 lt_ytnobody
PDF
Perlbeginnes 9 opening
PDF
Perlbeginners proposal
ODP
Chibapm01 lt
PDF
入れ子構造を分解する
PDF
YAPC::Asia 2012 CPANに恩返ししよう
PDF
ライブコーディング(?)で学ぶPerlオブジェクト指向
PDF
Perlbeginnes 4 keynote
PDF
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
PDF
Perlbeginners 3 opening talk
PDF
PSGIへの誘い
PDF
Perlbeginnes 2 keynote
PDF
Hachiojipm 14 LT
PDF
Perl Beginners #1 keynote
PDF
大ざっぱにオブジェクト指向
PDF
Hachioji.pm #13 LT
PDF
Alluren of prototype-based OOP
Perlbeginnes 9 lt_ytnobody
Perlbeginnes 9 opening
Perlbeginners proposal
Chibapm01 lt
入れ子構造を分解する
YAPC::Asia 2012 CPANに恩返ししよう
ライブコーディング(?)で学ぶPerlオブジェクト指向
Perlbeginnes 4 keynote
Perl暦およそ10年(?)の僕がデータベースを使えるようになるまでの昔話
Perlbeginners 3 opening talk
PSGIへの誘い
Perlbeginnes 2 keynote
Hachiojipm 14 LT
Perl Beginners #1 keynote
大ざっぱにオブジェクト指向
Hachioji.pm #13 LT
Alluren of prototype-based OOP
Ad

湘なんか#1 え!!JavaScriptでパイプラインを? by @ytnobody