虹裏img歴史資料館

ここでは虹裏imgのかなり古い過去ログを閲覧することができます。新しいログはこちらにあります

23/02/14(火)22:26:08 初学者... のスレッド詳細

削除依頼やバグ報告は メールフォーム にお願いします。個人情報、名誉毀損、侵害等については積極的に削除しますので、 メールフォーム より該当URLをご連絡いただけると助かります。

画像ファイル名:1676381168442.png 23/02/14(火)22:26:08 No.1026621670

初学者です ラムダ式意味わかりません 解説を見て分かって気でいてもソースコードを見て出会うと意味がわからなくなります 意味がわかりません

1 23/02/14(火)22:27:22 No.1026622225

別に難しいところなんかなくね?

2 23/02/14(火)22:28:20 No.1026622648

javaだけどこの記事おすすめ https://www.bold.ne.jp/engineer-club/java-lambda-expression

3 23/02/14(火)22:30:16 No.1026623463

無理してやらなくてええ!

4 23/02/14(火)22:31:55 No.1026624210

function f(x){return x*x;} が f=(x)=>x*x; みたいになるやつ?

5 23/02/14(火)22:33:01 No.1026624673

慣れるとラムダの無い言語を使う気が失せるぞ

6 23/02/14(火)22:34:21 No.1026625211

LINQ使ってみたくなったときにでもちょっとずつ覚えればいいよ

7 23/02/14(火)22:35:05 No.1026625558

>ラムダ式 スタティックメンバで書くまでもないちょいとした処理を関数の中でやってもらうときに書くのん コールバック実行するときとかに便利なのん

8 23/02/14(火)22:36:17 No.1026626072

別に使わなくても書けるよ 便利だなと思ったら使えばいい

9 23/02/14(火)22:37:03 No.1026626416

名前が悪いと思う

10 23/02/14(火)22:37:54 No.1026626747

ラムダ式ってかインライン関数だよね 原義のラムダ式とはだいぶ違ってるとは聞いたことある

11 23/02/14(火)22:38:49 No.1026627141

ラムダ式わからないって人権喪失するぞ わからなくていいとか嘘だぞ

12 23/02/14(火)22:39:21 No.1026627352

出た…「人権」…

13 23/02/14(火)22:39:47 No.1026627541

無名関数は現代的な言語機能の代表格って感じだ

14 23/02/14(火)22:41:09 No.1026628132

数値や文字列みたいにどこでも定義して変数に入れて他の関数に渡したりできる(第一級オブジェクト)ようになった関数だぞ クロージャはまだ覚えなくていいぞ

15 23/02/14(火)22:41:23 No.1026628226

ただの処理を簡潔に記述するための構文だよ

16 23/02/14(火)22:42:07 No.1026628497

C#はそもデリゲートがあるから他の関数に渡せる云々は特記すべきことじゃない気はするけどね

17 23/02/14(火)22:42:12 No.1026628537

_いいよね…

18 23/02/14(火)22:42:39 No.1026628730

C#やってるならdelegateは使うだろう? あれをカンタンに書くためのものって理解でとりあえずいいよ

19 23/02/14(火)22:44:11 No.1026629362

別の言語回ってきた方がラムダ式の理解は早いかもしれん

20 23/02/14(火)22:44:32 No.1026629502

ラムダはジャバ男さんの悪いトコ切り捨てられなかった負の遺産だからな…おっぱいにも悪い

21 23/02/14(火)22:45:11 No.1026629762

>無名関数は現代的な言語機能の代表格って感じだ まあ世界で2番目くらいに古い言語からある機能ではあるが…

22 23/02/14(火)22:45:43 No.1026630012

いいよね可読性

23 23/02/14(火)22:45:51 No.1026630076

そんな深く考えて悩むようなものだろうか

24 23/02/14(火)22:47:15 No.1026630665

オブジェクト指向な言語で出てきたら意味が分かりにくい機能だと思うぞ

25 23/02/14(火)22:47:34 No.1026630783

使いどころがわからないからどう勉強していいかわからない

26 23/02/14(火)22:47:49 No.1026630883

気持ちは分かる 慣れると楽だから頑張れ

27 23/02/14(火)22:49:40 No.1026631671

>使いどころがわからないからどう勉強していいかわからない delegateに渡す関数書いたことない? そこでしか使わないのにいちいち名前考えるの面倒じゃん しかも渡す先決まってるってことは型をちゃんと書かなくてもわかるじゃん ラムダ式の出番だ!

28 23/02/14(火)22:49:45 No.1026631710

それこそ上にあるLINQでまず使う

29 23/02/14(火)22:49:46 No.1026631721

動作を知るまでは外の変数触れるのが気持ち悪かった いっそキャプチャを指定するC++のラムダの方が分かりやすいとすら当時は思った

30 23/02/14(火)22:50:28 No.1026631998

ググれば解説山ほど出てくるから片っ端から見てけばそのうち理解できる説明に出会えると思うよ

31 23/02/14(火)22:50:39 No.1026632067

>ラムダ式の出番だ! 手抜くなや!

32 23/02/14(火)22:51:14 No.1026632285

ラムダ式ってなんでラムダなの?

33 23/02/14(火)22:51:59 No.1026632580

かっこいいだろう?

34 23/02/14(火)22:52:10 No.1026632670

エクセルのと同じ?

35 23/02/14(火)22:52:23 No.1026632752

いいよね型推論

36 23/02/14(火)22:53:37 No.1026633235

ランバダ?

37 23/02/14(火)22:56:29 No.1026634417

>f=(x)=>x*x; 顔文字に見えてきた

38 23/02/14(火)22:57:05 No.1026634683

ラムダ式はC++にも仕様としてきて面白そうだからサンプル見ながら使ってるけど実際面白いね 自分でこれならラムダ式で簡単に記述できるみたいなのは出来ない

39 23/02/14(火)22:57:35 No.1026634891

リストの中身をちょっとだけ加工した別のリストを作りたいときに便利だよね

40 23/02/14(火)23:00:18 No.1026635985

ずっとJava触ってきて最近C#弄り始めたけどこれ色々めんどくせ!

41 23/02/14(火)23:01:39 No.1026636564

JAVAの方がはるかにダサくてめんどくせえ…

42 23/02/14(火)23:01:44 No.1026636609

JavaもC#も楽な方だから勉強しよう!

43 23/02/14(火)23:01:46 No.1026636624

別に使わなくても良いんだよ

44 23/02/14(火)23:01:52 No.1026636672

ラムダ式とクロージャは別の概念なんだけど 実際にはセットで使うことが多いのでわからないのはラムダじゃなくクロージャのほうなんじゃないかって気もするな

45 23/02/14(火)23:01:58 No.1026636724

Pythonだとlambdaっていちいち書くの面倒だからどうにかしてほしい 他のみたいに()=>でいいだろ

46 23/02/14(火)23:02:18 No.1026636874

LINQにしか使ってない

47 23/02/14(火)23:02:52 No.1026637102

ラムダは変数のキャプチャがすごくありがたい 本当にありがたい

48 23/02/14(火)23:03:21 No.1026637278

ありがたいサンプルにあるようなこの式を簡略化する…みたいに使うことがどれほどあるのやら

49 23/02/14(火)23:05:38 No.1026638165

最近は省略しすぎて逆に読みづらくない?

50 23/02/14(火)23:06:39 No.1026638538

キャプチャの仕組みが分からない…なんでそんなことできるの

51 23/02/14(火)23:06:43 No.1026638569

JavaはGUI周りが色々めんどくさい 文法はお行儀よくてすき

52 23/02/14(火)23:08:35 No.1026639335

20年くらいほとんど打ってなかったから昔の書式でしか書けん

53 23/02/14(火)23:08:39 No.1026639371

>キャプチャの仕組みが分からない…なんでそんなことできるの それをするのがクロージャじゃないかな

54 23/02/14(火)23:09:20 No.1026639696

VB.Netのラムダ式をご覧よ お願いだから矢印くだち…

55 23/02/14(火)23:09:43 No.1026639856

別スレッドからGUIいじるとき Invoke((Action)(()=>{label1.Text = "hoge";})); とかよくやる

56 23/02/14(火)23:11:19 No.1026640544

>ラムダ式とクロージャは別の概念なんだけど >実際にはセットで使うことが多いのでわからないのはラムダじゃなくクロージャのほうなんじゃないかって気もするな クロージャが便利なケースが思いつきにくいからな… 知っておくと楽なんだけど

57 23/02/14(火)23:11:23 No.1026640575

>JavaはGUI周りが色々めんどくさい というかC#が例外的に便利すぎる…

58 23/02/14(火)23:12:05 No.1026640849

ラムダ式はわかるけどどういうときに使えばいいかわかってない

59 23/02/14(火)23:12:55 No.1026641203

C#はGUIアプリを作るために生まれたようなものだと思っている

60 23/02/14(火)23:13:17 No.1026641361

>VB.Netのラムダ式をご覧よ >お願いだから矢印くだち… 1行で済むならまだ良いけど複数行のダサさは半端ない

61 23/02/14(火)23:14:24 No.1026641830

そもそもVB.NETがダサ…

62 23/02/14(火)23:14:35 No.1026641913

>クロージャが便利なケースが思いつきにくいからな… >知っておくと楽なんだけど 名前つけるまでもない無名の単機能クラスと考えると割と便利だと思う

63 23/02/14(火)23:15:10 No.1026642140

>そもそもVB.NETがダサ… しゃーねーだろ会社が使ってんだから…

64 23/02/14(火)23:15:58 No.1026642476

>そもそもBASICがダサ…

65 23/02/14(火)23:16:04 No.1026642517

VB.netって書き方がアレなだけで機能面ではC#と等価と考えていいんかな

66 23/02/14(火)23:16:07 No.1026642534

>そもそもVB.NETがダサ… いよいよ死にゆくことが確定したとは言え割と最近まで.netとともに拡張されてたし意外と悪くないぞ 案件はVBAの次にクソ

67 23/02/14(火)23:16:16 No.1026642602

だいたいLINQとかこねくり回しててだいたいわかった(そんなにわかってはいない)で自信を深めるようなものでは

68 23/02/14(火)23:17:23 No.1026643069

大体の機能はもっと簡単にコード書きてぇ~~から来てるからまず言語を使い込まないとどこで使うかと言うか まず無いと何が大変で、あると何が有り難いのかが分からなくて学習意欲湧かないんだよね

69 23/02/14(火)23:17:36 No.1026643150

読みやすさも割とある方だと思うよVB.NETは

70 23/02/14(火)23:17:49 No.1026643242

ダサいとか言うんならナウくてヤングなやつにリプレイスしてくださる?

71 23/02/14(火)23:18:12 No.1026643381

>ラムダ式はわかるけどどういうときに使えばいいかわかってない foreachとAddを使わずに1行でリストの中身を全部2倍したリストを作りたい! みたいなとき

72 23/02/14(火)23:18:26 No.1026643470

ラムダ式はパっと見で「なんでこれで動くの?」ってなりがち

73 23/02/14(火)23:19:23 No.1026643860

>>ラムダ式はわかるけどどういうときに使えばいいかわかってない >foreachとAddを使わずに1行でリストの中身を全部2倍したリストを作りたい! >みたいなとき 2倍が確定してるんならリスト作成のタイミングでやればよくない?

74 23/02/14(火)23:20:06 No.1026644162

一応レベルで書けるけど何がどう違うのかちゃんとわかってないわ 俺は雰囲気でプログラミングしている…

75 23/02/14(火)23:20:19 No.1026644270

慣れるとアクセサ便利だなと思う

76 23/02/14(火)23:21:04 No.1026644575

>>ラムダ式はわかるけどどういうときに使えばいいかわかってない >foreachとAddを使わずに1行でリストの中身を全部2倍したリストを作りたい! >みたいなとき 具体的にどういうコードにすればそれが実装出来るのか教えて

77 23/02/14(火)23:21:12 No.1026644627

1行で書かなくても良くない?ってなるのはだめですか

78 23/02/14(火)23:21:27 No.1026644735

switch文もラムダでかなり簡潔に書けるのいいね

79 23/02/14(火)23:21:37 No.1026644794

問題は可読性が落ちるということ

80 23/02/14(火)23:21:45 No.1026644852

とりあえずListをソートするとき比較関数をラムダで書くとか試してみればいいんじゃないだろうか

81 23/02/14(火)23:22:13 No.1026645032

>2倍が確定してるんならリスト作成のタイミングでやればよくない? 破壊的な変更ならforeachで回せば良いけど 形を変形とか結合したいとかちょっとしたsqlじみたことしたいならlinq無しではもうやりたくないな

82 23/02/14(火)23:22:41 No.1026645205

C#やJavaScriptでコレクション操作するときはラムダ式なしは考えられない

83 23/02/14(火)23:22:42 No.1026645213

可読性が落ちるようなところで使うことが稀じゃないですかね…

84 23/02/14(火)23:22:48 No.1026645262

>別の言語回ってきた方がラムダ式の理解は早いかもしれん やるか!lisp!

85 23/02/14(火)23:23:05 No.1026645376

>>>ラムダ式はわかるけどどういうときに使えばいいかわかってない >>foreachとAddを使わずに1行でリストの中身を全部2倍したリストを作りたい! >>みたいなとき >2倍が確定してるんならリスト作成のタイミングでやればよくない? それでもいいよ でも処理をやりたいことごとに分割したくなってくると欲しくなるよ

86 23/02/14(火)23:23:23 No.1026645498

>問題は可読性が落ちるということ 適切に使えばむしろ上がるでしょ

87 23/02/14(火)23:23:39 No.1026645599

VB.NET触るたびにC#で書き直したほうが良くないかという疑問に駆られながらコードを書く

88 23/02/14(火)23:23:49 No.1026645664

>1行で書かなくても良くない?ってなるのはだめですか ラムダ式の本体を{}でくくって500行くらい書いてもええで!

89 23/02/14(火)23:23:56 No.1026645715

最近読んだJSのコードだけど最初マジで何にもわからんかった const filterJson = ({ data: { contents = {}, ...data } = {}, ...json } = {}) => { Object.values(contents).forEach(content => delete content.overloaded); return { data: { contents, ...data }, ...json }; }

90 23/02/14(火)23:24:05 No.1026645770

VB6のソースをVB.NETにコンバートしたときに属性モリモリのド汚いコードになって こんなんだったら最初からC#勉強するわ…ってなってC#触り始めたので もしあの時メチャクチャきれいにコンバートされてたら多分今でもVB.NET使ってた

91 23/02/14(火)23:24:28 No.1026645899

where!orderby!select! で何とかなる

92 23/02/14(火)23:24:37 No.1026645949

プロトタイプは何考えて作ったんだろうな

93 23/02/14(火)23:25:09 No.1026646174

ラムダ式なんて無かった頃のC#しか知らないからチクショウ

94 23/02/14(火)23:25:16 No.1026646214

>>問題は可読性が落ちるということ >適切に使えばむしろ上がるでしょ 無名関数無しだとこの関数なに…?ってなるし クロージャ無しだとこのメンバ変数なに…?ってなるからな 局所的に使うものを局所に押し込められるのはいいことだ

95 23/02/14(火)23:25:19 No.1026646235

>最近読んだJSのコードだけど最初マジで何にもわからんかった jsがクソなだけに見える!

96 23/02/14(火)23:25:23 No.1026646268

>最近読んだJSのコードだけど最初マジで何にもわからんかった これは…読みづらい…

97 23/02/14(火)23:26:00 No.1026646501

安全な関数ポインタだから関数ポインタ使わないなら別に不自由もしないだろう概念だと思う

98 23/02/14(火)23:26:13 No.1026646587

jsはマジで括弧地獄でエディタの色分けなかったら何が何だか

99 23/02/14(火)23:26:19 No.1026646627

関数を渡す…最初はそんなことしてどうなるって思ってた

100 23/02/14(火)23:26:34 No.1026646714

>最近読んだJSのコードだけど最初マジで何にもわからんかった それ読みにくいの明らかにラムダのせいじゃねえだろ!

101 23/02/14(火)23:26:48 No.1026646813

ふふふ…thisが何を意味しているか迷うが良い…

102 23/02/14(火)23:27:15 No.1026646997

ラムダは一目見て理解できる規模ならむしろ使った方が分かりやすい時もある

103 23/02/14(火)23:27:18 No.1026647021

使い所はそのスコープ内でちょっとした処理を渡したいって時くらいだと思ってるけどたまにとんでもない量の処理を突っ込む人がいて驚く

104 23/02/14(火)23:27:50 No.1026647247

>最近読んだJSのコードだけど最初マジで何にもわからんかった これはきっと理解しなくて良いやつだ

105 23/02/14(火)23:27:58 No.1026647297

他のやり方で出来る機能は理解するのが難しい オブジェクト指向も難しかった

106 23/02/14(火)23:28:10 No.1026647378

>ふふふ…thisが何を意味しているか迷うが良い… jsは何故クロージャにthisをバインドしないんだろうな…

107 23/02/14(火)23:28:53 No.1026647670

みんな何言ってるか全然わからん…プログラミングって怖いな…

108 23/02/14(火)23:29:01 No.1026647722

空集合を{}で表す言語は混乱の下だからやめろって思ってる めちゃくちゃ多いけど

109 23/02/14(火)23:29:39 No.1026647969

慣れてきた頃に初期に自分が書いた関数の荒さに殺されるのいいよね…

110 23/02/14(火)23:29:53 No.1026648038

>ふふふ…thisが何を意味しているか迷うが良い… fu1922733.png こんな不謹慎なことをするためにラムダ式じゃなくてfunction文使ったわ

111 23/02/14(火)23:30:34 No.1026648294

>>別の言語回ってきた方がラムダ式の理解は早いかもしれん >やるか!lisp! ラムダはともかくクロージャ理解するならSICP読むのがいちば…いやどうかな…?

112 23/02/14(火)23:30:36 No.1026648311

reactはじめたての頃はthisの対象が理解できなくて困ったな…

113 23/02/14(火)23:31:20 No.1026648587

JSはJSON表記が混入するのがマジで迷惑 便利ではあるんだが

114 23/02/14(火)23:32:29 No.1026649009

>ラムダはともかくクロージャ理解するならSICP読むのがいちば…いやどうかな…? 日本語だけどあれ読んでも意味わかんねえよ

115 23/02/14(火)23:33:04 No.1026649234

>やるか!lisp! やりたいんだがオープン系に慣れすぎてサーバーとクライアントって形式じゃないと厳しいけど大丈夫?

116 23/02/14(火)23:33:22 No.1026649333

function使うと目の敵にされるらしいな

117 23/02/14(火)23:35:21 No.1026650034

PHPやってたらLINQが欲しい…ってなる

118 23/02/14(火)23:35:33 No.1026650112

サポートしてないけど一応ie使ってるお客さんもいるとか言われてアロー関数も正規表現リテラルも使えなくて辛い…

119 23/02/14(火)23:36:27 No.1026650397

>PHPやってたらLINQが欲しい…ってなる このarray_mapでなんとか…

120 23/02/14(火)23:38:00 No.1026650933

>サポートしてないけど一応ie使ってるお客さんもいるとか言われてアロー関数も正規表現リテラルも使えなくて辛い… 今更IE対応のJSなんて書きたくなさすぎる…

↑Top