TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
DarkGDK Part.4
Javaはもう死んだの?
Pythonのお勉強 Part57
サウンドプログラミング5
「OS自作入門」
くだすれPython(超初心者用) その48【まず1嫁】
【JavaScript】スクリプト バトルロワイヤル55【php,py,pl,rb】
ほぼ初心者プログラマでするべき事がわからない
つまりRubyってPerlの後続じゃん?
Ruby で GUI するスレ
240 :
>>231
>Rubyのブロックはラムダじゃないしファーストクラスでもないよね?
Python や JavaScript のクロージャは、(名前が宣言された)関数と同様に
クロージャへ引数を渡すだけで評価される
  closure = function(x) { return x + 1 }  # クロージャを生成して名前に束縛
  succ_of_one = closure(1)  # クロージャを評価
それに対して Ruby だと、メソッド Proc#call を呼ばなければ評価されない
  block = lambda { |x| x + 1 }  # ブロックを生成して名前に束縛
  succ_of_1 = block.call(1)  # ブロックを評価
従って >>4(>>201) の関数型言語におけるクロージャ定義に当てはめれば
「Ruby のブロックは(本物の)クロージャではない」あるいは「....はクロージャもどきである」
またRuby のブロックの意味はオブジェクト(Procクラスのインスタンス)だからファーストクラスである
>メソッドにラムダを渡すこともできるけど、不格好なんだが?
たしかに不格好だ
 def foo(x, y, &block); .... ; end  # メソッドを定義
 foo(x, y, lambda { |z| .... })  # メソッドの呼び出し
だから Ruby には「ブロック付きメソッド呼び出し」という構文糖が最初から用意されている
 def foo(x, y); .... ; end  # メソッドを定義
 foo(x, y) { |z| .... }  # メソッドの呼び出し
>Pythonの仕様をあげつらうためだけにオレオレ定義をこねくって
>>4 のクロージャ定義の引用元(ソース)は >>201 で示したが、まともな反論はない
むしろオレオレ定義と騒ぎ立てていた連中がSICP本を読んだ事もないお馬鹿達だったのでは?
あるいはSICP本を読んでいなくても、関数型言語の操作的意味論や処理系実装の知識があれば
>>4 がオレオレ定義でないことは直ぐに理解できていたはず

プログラムに詳しくなりたい
くだすれPython(超初心者用) その46【Ruby禁止】
Pythonのお勉強 Part63
スレ立てるまでもない質問はここで 149匹目
Win32API質問箱 Build124
【質問】C++でソフト開発したい!【初心者】
Go language part 3
JAVAってこんなことも出来ないの?
monazilla Part 6
【GNU】Emacs Lisp 【Elisp】
--------------------
【初心者】初心者だけどGoogle home でIoT 2【IOT】
○●○カジヒデキ Part4○●○
【弱小】関西広告【元長田】
【暇】競走馬つながりしりとりスレ2Part11【つぶし】
【マターリ】新・情報7daysニュースキャスター★2
【やがて君になる】佐伯沙弥香はパンツもコーヒーもブラック可愛い4
【スパドラ】STARTUP スタートアップ Part1
【航路】Flightradar24【軌跡】16
ストリートファイター30thアニコレインターナショナル日本語不要派スレ
【バーチャルYoutuber】にじさんじ有ンチスレ14252【安心と信頼の乳袋】
リチャード・コシミズ〜世界の構造56
【大食い】とうにょう糖尿トウニョウを詠む【ツケ】
安全靴総合スレ part5
妻の携帯を見てみよう75
【NHK大阪】一柳亜矢子 part14【産休中】
Supreme
【楽天スーパー】楽天SuperPointScreen【ポイントスクリーン】8ポイント
公務員から公務員への転職44
東京通信大学Part.4
住友ゴム その2
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼