[過去ログ]
次世代言語11[Rust Swift TypeScript Dart] (1002レス)
次世代言語11[Rust Swift TypeScript Dart] http://mevius.5ch.net/test/read.cgi/tech/1528037607/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
898: デフォルトの名無しさん [sage] 2018/07/01(日) 19:51:05.54 ID:e+fGbKAY >>862 > Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判する それは「批判」ではなく、理解や運用の混乱を避けるための「区別」の必要性を訴えているのです。 「オブジェクト指向」もそうで、Smalltalkが重きを置く「決定の遅延のためのメッセージングのオブジェクト指向」と C++以降の「抽象データ型をクラス(またはそれに準ずるエンティティ)で実現するオブジェクト指向」とは区別すべきと一緒です。 批判があるとすればそれは、本質的に違うものに後から同じ名前を付けて混乱を招いていることに対するものでしょうね。 http://mevius.5ch.net/test/read.cgi/tech/1528037607/898
899: デフォルトの名無しさん [sage] 2018/07/01(日) 20:00:26.61 ID:e+fGbKAY >>862 > 他の言語より後に実装したclosureについては独自仕様でも問題ない、技術ベースで語れ 私はSmalltalk信者wですが、この文脈での>>844の「クロージャだから」もそれを受けた>>847の「ヒント:Smalltalk」も 混乱を招きかねない説明やサジェスチョンだと思いまよ。 # 以下は比較的に古典的かつナイーブな実装の Squeak や Pharo を想定しています。為念。 Ruby の retrun に相当する Smalltalk の(唯一の)制御構造である「^戻り値」は、 Ruby の>>837の例では prco_return や block_retrun と同じ挙動になります。 Object compile: 'rubyReturn | f ret | f := [:n | ^ n * 10. "以降に処理を書くとコンパイル時エラー"]. ret := #(1 2 3) collect: f. ^''ret: '', ret printString'. self rubyReturn "=> 10 " 余談ですが、lambda_return の挙動も「thisContext retrun」(戻り値が欲しいときは「return: 戻り値」) という表現を使えばまあできなくはないです(が普通はやりません)。 Object compile: 'rubyLambdaReturn | f ret | f := [:n | thisContext return: n * 10. #以降の処理は無視]. ret := #(1 2 3) collect: f. ^''ret: '', ret printString'. self rubyLambdaReturn "=> 'ret: #(10 20 30)' " いずれにせよ、Smalltalk でクロージャ内のリターンがそのクロージャを実行中のメソッドコンテキストを抜けるという挙動をもって (継続渡しとかならともかく)Ruby の複雑な状況の説明を試みるのはあまりよい方法ではないのは確かですね。 http://mevius.5ch.net/test/read.cgi/tech/1528037607/899
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.034s