2022/03/23

Lambda関数?

いろいろと耳を塞いで生きてきたと思う。
運が良ければスルーできるのだが、そうならない場合も多い。

Lambda関数はどうだろう?
まだわからないのだが、調べるに越したことはない気がしている。


まずはこちらから。

アロー関数 - TypeScript Deep Dive 日本語版
https://typescript-jp.gitbook.io/deep-dive/future-javascript/arrow-functions

アロー関数の説明で、「または」ということで Lambda関数という呼び名を紹介している。
アロー関数は私もしばしば使う。 function でも => でもどっちでもよいときはどうしたもんだか、と悩みはするものの、アロー関数じゃないとダメなところもたまにあるので、そんなに忌避しているわけではない。

this がどうのこうのは JavaScript の話だと思う。

となると、アロー関数が Lambda 関数とも呼ばれるような要素と言ったら「function と打つのが長い」しか当てはまらないと思うのだよ。

しかし、 Kotlin なんかは fun だし、Golang(に Lambda関数があるかは知らんが) は func だ。これを長いというのはちょっと無理があるだろう。
となると、変数に代入するような書き方ができるとかか?

 

検索すると AWS のも出てくるが、そちらで調べていくと今の知識だと間違えそうなのでやめておく。
あとは Excel と Python が出てきた。
よし、Python で見よう。

Pythonのlambdaって分かりやすい - Qiita
https://qiita.com/nagataaaas/items/531b1fc5ce42a791c7df

最初に「無名関数」と説明してある。
あれ、無名関数って別の呼び方をされてなかったっけ?
無名クラスか。 Java だったような気がするが、入れ子でクラスを書くときにそういうのが出てきたような。

hiro99ma blog: [android]Java8への思いやりを形に
https://blog.hirokuma.work/2015/11/androidjava8.html

Android Studio が私が書いたコードを勝手に省略しようとするから腹が立ったという話だ。
このときもあんまりわからずに終わっているが、結局は見栄えだとか手軽とか、そこら辺が魅力ということなのだろうか。


もっと一般的な何かがあるはずだ。

language agnostic - What is a lambda (function)? - Stack Overflow
https://stackoverflow.com/questions/16501/what-is-a-lambda-function

一気に難しそうな話になってしまった・・・。
少なくとも、私の力で読み解くのは難しそうだ。

無名関数 - Wikipedia
https://ja.wikipedia.org/wiki/%E7%84%A1%E5%90%8D%E9%96%A2%E6%95%B0

ラムダ式・・・関数型言語・・・うぅ、頭が・・・。

 

しかし、JavaScript ってこんな書き方ができるんだ、と思っていた部分の一つが Lambda関数 / Lambda式 / 関数オブジェクト / 無名関数 と呼ばれるものの概念などを言語に落とし込んだ結果なのだろう。

なので、あまり難しく考えず、JavaScript のアロー関数など、と覚えておくことにしよう。どうせ正解はないのだ。