ラムダ式書けないくせにプログラマ名乗ってる奴wwywwyww [419111196]
■ このスレッドは過去ログ倉庫に格納されています
コンピュータサイエンスとしてのラムダ式は
プログラムの数理モデルの一つとして
情報科学分野では基本教養だと思ったけど
そこスキップしちゃうIT屋って文系出身か何かなのかな
まあ自分はLisp屋を目指していた時期があったから
知ってて当たり前だと思ってたけど
C++のテンプレとかライトウエイト言語でLambda式となると別の問題があるの? >>98
ITの基本教養だから、
それで書いとけは式部分は定義が明確になって
それを必要とする文脈や実装上のごちゃごちゃと
切り分けが容易になって
複雑なコールバックを追いかけるよりはマシ
ってもんじゃないの? >>100
言ってることがめちゃ過ぎて、専門板荒らし定番議論破壊テンプレにしか見えないね
要するにレスすんな下人 >>102
単に関数渡すだけの仕組みなんでないの?ってこと🤔 >>101
lambdaだからそうなるなんて事はないよ
と言うかお前薄っぺらい内容で長文書きすぎ >>102
説明能力のなさを相手のせいにしたいならばまず説明してみればええんでないの?🤔 >>96
もしかして数理解析研の教授に長期粘着してるハッタリの人?
CPSってScheme言語あたりでは基本技法の一つで
1980年代にはMITの有名な教科書で扱う内容だったから
いまここでそれをさも難しい技法のように持ち出すのは
基本教養のない人にしか見えない >>104
ローカル変数をキャプチャーできるんやで >>91
ごめん何言ってるのか全くわかんない
JavaScriptのthisはコンテキスト依存だぞ
拘束されるのはいわゆるlambdaじゃなくてアロー関数 >>105
あくまで文脈に沿った話を出しただけなのに何をブチ切れてるんだよ
こっちは全てラムダ式のLisp出身だから、ラムダ式でビビりCPSを高等技法だと思い込んでいるちびっ子の感覚は知らんね >>108
匿名リスナーでもインスタンス変数参照できたりすんのと同じこととかやろか🤔 >>107
SchemeでCPS書くのとコードをCPSへ変換するのは別の話
再起探索をforとqueueに変換するとかそう言う話
お前教科書云々とか表面上の話しかしてないけどもしかしてプログラム書いた事ないのでは? >>103
これやね😌
あとクリックすると元に戻ってくれたりするんよ☺ Javaだけど流れるように書いて直感的に理解出来る!
とサンプルを使ったら一時期流行ったけど
デバッグやりにくいから廃れてしまった
悲しい CPSはLispだとClosureを使う
自分が学んだ時代はMac LispからCommon Lispに切り替わった時代で、静的束縛言語としてClosureが排除された後だったから
その辺を実験するのにCommon Lisp風言語を動的束縛に手直ししたり、Schemaに移ったり、ややこしかった 単なる言語仕様だろ
仕様策定に関与でもしたならともかくただの一ユーザーのくせにイキるなよ >>112
別にSchemaだけ弄ってるわけではなくて
LispやSchema自体の言語処理系を扱っていたから
その辺は裏方の実装込みでかけるけど
ちびっ子には理解できない話なのかな
>>115
やっぱり内容のない話しかできない統合失調の人かよ
つまんね >>111
実装上はおんなじようなもんだけど
ラムダって言ったらスコープに依存しないクロージャとして使えるし外に副作用も与えられるのが一般だからそれとは微妙にちゃうかも
匿名リスナはあくまで自クラスの範囲だから >>111
目的は同じじゃよ
超初期のJAVAにはなかったから、コールバック用のインターフェースを実装するクラスにローカル変数のコピーをフィールドとして持たせないと駄目な地獄だった
Cだと未だにできないからvoid*引数で対応するローテク状態 >>118
支離滅裂すぎて話にならない
実装も違うよ
そもそもLispの文脈でScheme語るなよ別もんだぞ
お前絶対書いたことないだろ >>117
ほらまた頓珍漢な発言して低脳統合失調とバレている
統合失調の人の書き込みって
キーワードの風呂敷を広げるだけで
具体的な話が何も出てこないし
それが過去において基本教養として
MITの学部向け教科書でも扱われていた話をしても
何のことか全然理解できないんだよね
かわいそう >>120
初期でもRunnableとかでなんとか出来んかったんやろか?🤔って今では思うんけどもね
今だとfunctionとかsupplierみたいな汎用関数インターフェースあるけどもその先駆けはRunnableなんやろし >>121
別物も何も、AppleでDylan言語、統計分野で統計用Lisp拡張をやっていた人は、両方の言語処理系を出してるよ
Common Lispはネイティブコンパイルをターゲットとした静的束縛型Lisp
SchemeはTIのSchemeチップやバイトコードマシンをターゲットとした、Continuationを実装した教育研究用Lisp
極端な違いはない 匿名掲示板はキーワードだけでイキるちびっ子が暴れる
レベルの低い場所だな
20年前も今も、統合失調が暴れる悲惨な場所 >>125
LISPとかいう言語ってemacsで使う言語なんでない?🤔
もうとっくに廃れとるやろ? >>122
言語の中に、ラムダ式専用の汎用サブ言語を埋め込む形の拡張だから、構文拡張が接木の形になるのはしょうがないかと。
国内でも1990年代にそれを言語仕様として取り込んだライトウエイト言語を作った有名な人が居るけど
自分は流儀が違うから、妙なことやってるなと思った >>125
お前のレスって全部Wikipediaなぞっただけみたいな内容だよな
MLやOcaml、CやC++が一緒とか言ってるレベル
感覚が一般人のそれ CSのラムダの有用性なら型システム入門でも読めばええんやない(鼻ホジー >>124
Runnableは最初からあったんだけども、今ほど多用されてなかったから不便さはなかったんだよね
当時はGUIのほうがリスナー地獄だった感じ 結局この手のスレでキーワードの風呂敷を広げては愚劣な絡みをする人って
普通なら10代の学部生時代に基本教養として学ぶ数理論理学やプログラム言語論を
還暦間際にもなって何年もかけて付け刃として覚えたような愚劣極まりない人種だから、誰も相手にしないんだろうね
学生時代にこの人物と接した教員の苦労の程がよくわかるスレ
>>109
ラムダとアロー関数って違うんか? >>131
それも30年前の話だな
なんで匿名掲示板で暴れる人の出す話題って
いつまで経っても他の人が学生時代に通過した話に
留まるんだろうね
何十年も同じ話を繰り返して爆笑モンだわ >>124
JVM的にも無茶多いだろね
メソッドのコンテキストでnewだのgetだのするのと違って直接別のオブジェクト引っ張ってくる必要あるし ところで、common lispって静的束縛だっけ???
スペシャル束縛がデフォじゃなかったっけ? SICP読んだだけのLisperワナビーやろきっと そこは、AppleでDylan言語をやっていた人の流儀では静的束縛としての単純解釈 >>138
あんなの学部の初心者向け教科書だから斜め読みでおしまい
数理解析研の教授より年上なのに、職位も勤務先も格下の粘着の人の妄想はレベルが低いなぁ まあifとforだけあればなんでもできるみたいなもので別に必要ではないよな
便利なだけ >>134
言われてみれば一応どっちもlambdaと言ってもいいのかな…
歴史的にはjsはfunctionの方が一級だったlambda扱いだった
アロー関数のthisは実行時コンテキスト(環境)に依存せず常に定義した場所のthisコンテキストになる
基本的には純粋なlambdaは引数依存でクロージャは別機能だと思う 粘着の人はSICPって名前覚えるのがやっとで内容なんて読んでないんだろうな
あの本は、Lispコミュニティで長年培われたややこしい流儀を再整理してコンパクトな教育用言語仕様に詰め込んだご当人が、その技法をLispではなくSchema言語の流儀で学ばせる目的で書いた本 >>143
誰もSICPの説明なんて求めてないぞ
しかも説明も本そのものの表面上の話だけで中身に触れてない C#の無名関数は変数のキャプチャが出来るのが便利だよな
普通の関数だと必要な引数を全て渡すかグローバル参照するくらいしか方法が無いところ
無名関数だと局地的なグローバル変数みたいな感じで必要な変数を参照できるから、シングルスレッド向けに書いてた処理をちょっと手を加えて同期処理を必要なところに入れるだけでマルチスレッド化できる とは言っても自分もカバーしてない技法はSICPの外側にあって
それはLisp MachineやSymbolics社が専用機の上で開発していたオブジェクト指向拡張Flavorとかの類
実機を手にするには若干遅気に失した世代なので
せめてもの残香を嗅ぎたくてSymbolicsの日本法人トップの所までは行ったけど、まあ具体的な話をする機会は全然なくて諦めたw >>145
単発IDの数理解析研ストーカー相手に話す内容など何もないからさっさと専門病院の閉鎖病棟に戻れ病人カス >>136
やっぱJVMさんがオブジェクトとか関数のハッシュ見て色々探し回ってくるから大変や😢とかなんかね🤔 C#なら
delegate:C言語の関数ポインタを安全にしたモノ
→毎回delegate渡すの面倒だからその場で関数式書いて渡して終わりでよくね? ついでにこれLINQに渡せるようにすれば便利じゃね?
だからラムダ式は理解は簡単だな
Strutsの頃からずっとJavaしかやってない人にどうやって説明したもんかは分からん >>148
統失とか病人って言葉好きみたいだけど
どう見ても病人はお前の方だぞ
中身の伴わない自己満足な解説と自分語りで会話になってないのに気づけよ >>149
jvmさんは1.2だったかのころに大改造されてて、今みたいに簡単にリスナーを書けるようになったの
だから職場環境はきっとよくなってるはず >>146
変数束縛を含むクロージャ=カプセル化したオブジェクトを、無名のままスレッド単位で動的生成するみたいな話だな
あのあたりがオブジェクト指向の枠組みでは扱い切れずに、ラムダ式の枠組みで扱われるようになった理由は何なんだろう >>150
メソッド単体だけその場で定義して渡せる仕組みって説明でいいんじゃない
つかC#も中身クラスでしょ? >>146
一番やっちゃいけないタイプの変更じゃねそれ
async awaitとか使う話ならわかるけど ポインタの存在を許す文脈では
変数束縛は、変数名とポインタの組の集合、
無名関数は、参照方法と関数ポインタの組
として当たり前に表現できるのだけど
そこにスマートポインタとしてのdelegateを絡めると
どう話がややこしくなるのだろう
Javaの文脈で説明困難というのは、まあJava側の問題として Cで書いてるソースの修正にゴリゴリにC++のコード入れるのやめてよ >>156
Javaの人、最悪Beanに詰めてフロントに渡すしか出来ない場合がある… >>153
単にわざわざクラス定義してまでやるほどの処理じゃない部分が使い所なんじゃない?
ボトルネックになっているから並列化はしたいけど別に他で使いまわせない処理まで専用のクラスや構造体を用意するのはアホらしいって時とか
ラムダ式全般的にいかに表記を省略して書く手間を減らすかって考えて作られている感じだし
省力化の一種でしょ Visual Studioでラムダ式が含まれる変数ウォッチできないの使えねーって思う。 >>158
不謹慎かもしれんけど笑った
でもまあそう言うフレームワーク依存の制限はC#とかでも同じだろよ オブジェクト指向って突き詰めると関数渡すためにあれやこれややってるだけだからな
だったら関数そのまま書けばいいだけだわ >>159
ああ、それは判る
C言語で書かれたOSソースだと
そんなんまでいちいち構造体作ってアクセサー作って
やるのかー、構文等衣がCPPしかない世界は
魔法が使えなくて大変だなぁ、って問題への対応だね >>155
例えば元々シングルスレッドのFor文で1から10000まで回していたような所を
1から99まで、100から199まで
みたいにバラして並列実行させたりするでしょ
もちろん各ループ間で依存性が無いことが前提の処理で
ループ間に依存性はないが出力は順番通りである必要がある時はあとで結果を並び替えながら結合する処理を追加したりとか工夫したらだいたい何とかなるし
ってかGoogleのMapReduceのやりかたそのものだが >>107
誰それ いやまじで頭おかしいんだろうけど
というか別に理論面のコンプレックスの話じゃなくて実務面のコンプリケイテッドの話だよ
単純に無名関数と環境束縛のことをラムダ式としか扱ってないのに分からないはねーだろって話だよ Javaの当初仕様だとReflectionで無名クラスを動的に作ってインスタンスを生成して、みたいな方法で実装自体は可能にする方向だったけど
そのための記述が上でも触れたC言語OSソースみたく記述量が膨大になって、見通しの悪いコードになるから
現実的に使い物にならないという問題 >>159
逆にラムダ式だらけになると、それはそれで元の木阿弥みたいになっちゃうんだよな。 >>165
そのアンカー先は、還暦間際の底辺の精神異常者向けだから、それに反応するのはその人と等価な人物と判定できてしまうね >>162
データも渡してるのが肝
ステートレスなら関数式だけでも綺麗に書けるけど
ステートフルでそれやると変数が隠れて管理が大変になる
なので宣言型のオブジェクト指向になってると思う
まあステートレスの方もトップレベルのデータ格納してる媒体そのものが巨大になる欠点があるけど >>165
まあアンカー先以外は
とても妥当な話だと思う >>165
「誰それ」に対する適切な回答は
このスレで単発IDで暴言を吐く>>169のひと JavaはSingle Abstract Methodなインタフェースって概念作って、更に匿名クラス作らないでindyでラムダを8で作ったでしょ
実体は匿名メソッドっぽい感じだった気がする >>164
うんだからそれ最初からasync awaitで組むように変換すべき内容だと思う
自分でちょちょっと変更って気をつけててもいつか相互依存でデッドロックするよ >>166
クラス動的に作るだけならProxyクラスなんかはそうだね
ランタイム時にバイトコード作って読ませてるけど
AOPなんかやるとcglibとかで類似物はたくさんできる >>173
あれ結局別のクラスに生やしただけだからな…
正直JVM使ってる限り実行速度の呪縛があるから解けないだろね >>174
ピンポイントで排他処理が必要な部分だけ排他制御した方がパフォーマンス良いんじゃ無い?
まあ俺が古い人間なんでasync/await構文をUI周りくらいでしか使わないだけかもしれんけどw
こんな記事はあった
非同期のパフォーマンス:AsyncとAwaitのコストを理解する」と
一部の限られたユース ケースでは、非同期メソッドを使用しない方が開発者にメリットがあり、特によりきめ細かい方法でアクセスするライブラリ メソッドの場合は顕著です。通常、このユース ケースに該当するのは、メソッドで使用するデータが既に使用可能なために同期をとってメソッドを完了できることがわかっている場合です。
https://learn.microsoft.com/ja-jp/archive/msdn-magazine/2011/october/asynchronous-programming-async-performance-understanding-the-costs-of-async-and-await >>175
あのあたり、静的言語で高効率を目指したはずなのに
作るべきシステムに動的性質があって
そのためにSmalltalk時代に発案されたであろうバイトコード=一種のアセンブラの出力を動的に作る話になって
土臭いよね AoPの人かぁ研究室のお名前が浮かんだ
あのあたり、SI業界No.2の研究開発部門の若い人が
これからはSOC(ソフト業界の方)、AoPだーと叫んで
AoPで実務5年以上ある人、という存在しない求人募集を掛けてしまって
国内外の研究室の名は浮かんだけど実務5年はあり得ないだろとお話しに行ったことを思い出した >>178
そこにあるように本当に単純なループの分割統治ならまあ
ただ個人的にはその場合も全部書き換えるかな
MapReduceなら特に同期も分割統治になるし バイトコードよりもクラスディスクリプターの動的生成だろうな >>73
わかる。
ユースケースがある程度頭の中にインプットされればいいんだが、使う機会がないまま忘れてしまう。
ラムダはpythonでmap処理と書く時とかに、たまに使う程度。
java scriptってかフロントエンドだとこの手の機能よく使ってるイメージ。 プログラム意味論の最大不動点と余帰納法と双模倣性の話が
ネットの解説見ても学会誌の解説記事見てもよくわからん
住井先生の薄い教科書「プログラム理論の基礎」にはちょっと触れられてるだけだし
古本屋で10年前に買ったマンナ「プログラムの理論」中島「数理情報学入門 スコット・プログラム理論」には載ってないっぽい
技術系ブログ記事はどれもHaskellの理論的基礎の説明ばかりでHaskell知らないと全然分からない ところでID:bWoLqZU50ってこのスレのID:10eHUsYF0だよね
↓↓↓
ジャンプの新連載「第二次世界大戦中のアメリカは才媛を集めて暗号解読部隊を編成しNSAの基盤を作った」 [279859175]
https://greta.5ch.net/test/read.cgi/poverty/1668992609/
聞かれてもないのに自分語りしたり
突然相手の素性の透視始めたり
ちょっとヤバくないっすか・・・?
a_watcherっていう有名人と言動や思考がかなり似てるけど
あっちとは専攻分野が違うっぽい デバッガとの相性が悪いのがな。。
早く書けるが保守性に難あり Lisperなのでラムダ式はなんのハードルもなく使ってます
いやむしろこれなしでどうやってプログラミングするのってレベル
マクロと同じくらい空気のようなあって当たり前の存在
それがLispなんです >>188
他人に読ませる気がないコードを量産してそう >>189
まあ俺のコードを理解するには一定レベルの知識は必要だわな
けど決して難しくないレベルだからある程度経験を積めば読めないことはない
それより恩恵のほうが大きい
他のコードよりコンパクトなコードで短期間に開発がかのうになるし、なにより書いてて楽しい >>190
うん、まあその気持ちはめっちゃ良く分かる
がしかしチームで仕事してるとトータルの生産性は下がってると思う
1人で専任でやってたり趣味で書いてるなら好きにしたら良いんじゃないか 既存言語へのLambda式のアドホックな追加は
C言語のプリプロセッサやLisp言語のMacroのように
言語本体の構文処理とは別のレイヤーで類似構文を処理
する仕組みなんだろうね、ニッチで限定的な使い方に特化してしまったようだけど >>188
そこでいうマクロってどの言語のマクロの話?w >>186
やっぱりあなた、数理解析研究所の教授に匿名掲示板数学板で2年くらいウザ絡みしている、職位も職場も底辺の精神異常のおばちゃんじゃん
あなたの書き込みは脈絡のない妄想コラージュばかりだから一目で同一人物だと誰の目にすぐわかる 他の人向けに参照ポインタを提示しておくと
@apjというネット界最大クラスの狂人 Javaだとなんか気持ち悪くて好きになれないが、Pythonだとfilterやmapでよく使ってる >>194
いや俺はそのスレのID:Df1Vl4HY0なんだが・・・
あのスレじゃ普通に会話できてたのに、こんな風に自分のおかしさを指摘された途端に誰でも彼でも同一人物認定ですか
あーあ残念 ・基準が日本語版バカペディア
・とっくにDAT落ちした泡沫雑談スレのIDで
自分は「わかっている人」だと主張
・IDをコロコロ変えて同じ妄想話を継続
・参照ポインタで身元をバレされると激しく執着
まごう事なき狂人 ■ このスレッドは過去ログ倉庫に格納されています