[過去ログ]
次世代言語11[Rust Swift TypeScript Dart] (1002レス)
次世代言語11[Rust Swift TypeScript Dart] http://mevius.5ch.net/test/read.cgi/tech/1528037607/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
857: デフォルトの名無しさん [] 2018/07/01(日) 09:23:49.76 ID:FQlsc9Xo >>852 あなたが closure だからと主張する、block は 952の挙動だが Proc では break は例外吐くらしいけど何で? # 言っちゃ悪いが、closure は定義した時点での環境を基準に動作が普通だと思うんで、 # ループ外で定義されているならば next/break は一律例外吐くで無いと一貫性がないようにしか見えん。 http://mevius.5ch.net/test/read.cgi/tech/1528037607/857
858: デフォルトの名無しさん [] 2018/07/01(日) 09:24:49.31 ID:FQlsc9Xo >>857 すまん、「block は >>852の挙動」だな。 http://mevius.5ch.net/test/read.cgi/tech/1528037607/858
869: 857 [] 2018/07/01(日) 11:25:18.69 ID:usR85dqh >>867 smalltalkには break や continue (next) はないだろう? ruby のは、closure に break や next を持ち込んでおかしくなっているように見えるよ。 http://mevius.5ch.net/test/read.cgi/tech/1528037607/869
892: 857 [sage] 2018/07/01(日) 18:07:48.02 ID:FQlsc9Xo >>891 なあ、smalltalk と ruby に詳しいんだったら、意味の無い罵倒を止めて、 >>869 の答えてくれない? http://mevius.5ch.net/test/read.cgi/tech/1528037607/892
901: 857 [sage] 2018/07/01(日) 21:20:45.24 ID:FQlsc9Xo >>900 かといって、スレタイの TypeScript だって、 Python + 型チェック とあんまり変わらなくないか? #まあ、TypeScript は次世代じゃないという主張はありだけど http://mevius.5ch.net/test/read.cgi/tech/1528037607/901
912: 844 [sage] 2018/07/02(月) 06:42:05.84 ID:9wGdj7CA >>857 Ruby のProc, block はクロージャで、 Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの その際、block内でbreak を呼ぶと、ループ処理が完遂せず、失敗とみなしたのだろう ラムダは後に作られたから、return で値を返すようにした 結局、Proc, block、ラムダ、クラス・モジュールも、 スコープチェーンという単一の概念から出来ている 自分の1つ外側のスコープを指す、ポインタを持っている http://mevius.5ch.net/test/read.cgi/tech/1528037607/912
915: 857 [] 2018/07/02(月) 09:49:51.97 ID:OVGUyhuB >>912 あなたがrubyを好きなのはよくわかる、が >結局、Proc, block、ラムダ、クラス・モジュールも、 >スコープチェーンという単一の概念から出来ている > >自分の1つ外側のスコープを指す、ポインタを持っている 単一の概念にするのは失敗してるんだ 理由は簡単、blockにbreakがあるせい。breakの飛び先は、通常のlexcal scope では解決できない。飛び先は定義時と関係ない、後で呼び出される each などのblockを呼び出す関数内に有るからな 他の内部イテレータ使う言語は、諦めて例外やcall/ccなどの大域ジャンプでエミュすることにしてる。 rubyは頑張ってなんとかしようとして、結局統一出来ず、でも似てるから使用が困惑する結果に http://mevius.5ch.net/test/read.cgi/tech/1528037607/915
948: 857 [sage] 2018/07/03(火) 09:12:56.01 ID:0xlHwX4q >>937 いや、next はともかく、 break は lexical scope の範囲内では実装出来ないんだよ。 break が for や while でキャッチされる特殊な例外扱いならば、こんなおかしな事にならず、Proc 内でも break 使える様に出来たのに。 >>938 ここでいっているスコープは、 dynamic scope であることに注意ね。 内部イテレータでは、本来 break は例外と同じ方法でしか実装出来ない事を理解いただいて何よりです。 でも、ruby では、 Proc で break 呼び出したときの例外が LocalJumpError になっていて、どういう扱いにしたいかよく分からないんだよね。 for, while 内の break との整合も取れないし まあ、次世代言語の話じゃないんで、そろそろ突っ込みは止めときます。 http://mevius.5ch.net/test/read.cgi/tech/1528037607/948
980: 857 [sage] 2018/07/03(火) 19:33:36.60 ID:0xlHwX4q Nim は書きやすさと速度、Rust は安全性と速度、 に注力したイメージなんだが、安全性と速度に比べて、書きやすさと速度って一つの言語でカバーする必要性が薄いように思うんだよな。 従来の「スクリプト言語+速度が必要なところだけC/C++」に比べて、どうしてもNimが良いっていう場面ある? http://mevius.5ch.net/test/read.cgi/tech/1528037607/980
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.045s