スレタイ以外の言語もok
前スレ
次世代言語10[Rust Swift TypeScript Dart]
https://mevius.5ch.net/test/read.cgi/tech/1524607347/
探検
次世代言語11[Rust Swift TypeScript Dart]
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
2018/06/03(日) 23:53:27.92ID:vrBh4O6u838デフォルトの名無しさん
2018/06/30(土) 17:39:57.19ID:RHrrdh8p >>836
その人はrustがコンパイルできないおじさんだからほっときなさい
その人はrustがコンパイルできないおじさんだからほっときなさい
839デフォルトの名無しさん
2018/06/30(土) 18:00:17.99ID:Q/uEsP1n rust
ruby
似てないこともないな
ruby
似てないこともないな
840デフォルトの名無しさん
2018/06/30(土) 18:59:53.28ID:+abKhVkF >>834,836
とはいえ、ruby にまともに使える型チェックの実装があるのかには興味あるな。
まえ調べた感じだと、教祖の型チェック周りの発言はフワッフワだし、実装してみたい個人が互換性のない「オレオレ型チェック」を作っては破棄してる感じで、万人が使えるものは何一つないようなんだが。
とはいえ、ruby にまともに使える型チェックの実装があるのかには興味あるな。
まえ調べた感じだと、教祖の型チェック周りの発言はフワッフワだし、実装してみたい個人が互換性のない「オレオレ型チェック」を作っては破棄してる感じで、万人が使えるものは何一つないようなんだが。
841デフォルトの名無しさん
2018/06/30(土) 19:02:48.17ID:6fEIEQu0 どうせ
if type(...) != my_class:
とかのシュガーだろ。そんなもんに目くじら立てても意味あるのかね。
if type(...) != my_class:
とかのシュガーだろ。そんなもんに目くじら立てても意味あるのかね。
842デフォルトの名無しさん
2018/06/30(土) 19:33:21.11ID:CMs/fWc6 Rubyはオモチャだから型付けなんて要りません
それより散らかったオモチャを片付けなさい
それより散らかったオモチャを片付けなさい
843デフォルトの名無しさん
2018/06/30(土) 20:38:08.56ID:4h701pQF 自分のために違法建築したとは考えにくい
ユーザーを忖度して違法建築なら利己的ではないからOKという風潮があったんじゃないか
会ったこともないユーザーをモチベーションにするのはやめてほしい
ユーザーを忖度して違法建築なら利己的ではないからOKという風潮があったんじゃないか
会ったこともないユーザーをモチベーションにするのはやめてほしい
844デフォルトの名無しさん
2018/06/30(土) 23:16:50.81ID:tr0WXiW5 >>837
Ruby のProc, block はクロージャだから、クロージャを囲む関数から戻る。
一方ラムダは、単にクロージャを抜けるだけ。
Groovy なども参照
def f
(0..5).each do |i|
puts i
return if i == 3
end
end
f() #=> 0, 1, 2, 3
Ruby のProc, block はクロージャだから、クロージャを囲む関数から戻る。
一方ラムダは、単にクロージャを抜けるだけ。
Groovy なども参照
def f
(0..5).each do |i|
puts i
return if i == 3
end
end
f() #=> 0, 1, 2, 3
845デフォルトの名無しさん
2018/06/30(土) 23:39:42.18ID:xV+Shhkx >Ruby のProc, block はクロージャだから、クロージャを囲む関数から戻る。
クロージャ「だから」、クロージャを囲む関数から戻る??
まるでクロージャだったら当然の挙動と言わんばかりの書き方だけど、クロージャってそんなんだっけ?
クロージャ「だから」、クロージャを囲む関数から戻る??
まるでクロージャだったら当然の挙動と言わんばかりの書き方だけど、クロージャってそんなんだっけ?
846デフォルトの名無しさん
2018/07/01(日) 00:39:17.02ID:tX8JlSDC そんなものちゃんと読んでる>>845に感心したw
ネットにはゴミが多いね
ネットにはゴミが多いね
847デフォルトの名無しさん
2018/07/01(日) 01:54:08.61ID:5prQoZWD >>845
ヒント:Smalltalk
ヒント:Smalltalk
848844
2018/07/01(日) 02:00:27.83ID:YZ+qvhoO クロージャは、クロージャの外側の環境をつかんでいる。
つまり、クロージャを囲む関数内の変数をつかんでいる
だから、クロージャ内でreturn すれば、外側の関数も抜けて、
関数内の変数なども、解放した方が良いと考えた
Groovy の挙動とは違うかも
つまり、クロージャを囲む関数内の変数をつかんでいる
だから、クロージャ内でreturn すれば、外側の関数も抜けて、
関数内の変数なども、解放した方が良いと考えた
Groovy の挙動とは違うかも
849デフォルトの名無しさん
2018/07/01(日) 02:11:27.56ID:FQlsc9Xo >>848
return だけだったら納得できるんだが、next や break の扱いがぐちゃぐちゃなのはどう説明するの?
return だけだったら納得できるんだが、next や break の扱いがぐちゃぐちゃなのはどう説明するの?
850デフォルトの名無しさん
2018/07/01(日) 02:52:24.35ID:QlwNZjji851デフォルトの名無しさん
2018/07/01(日) 03:04:39.74ID:3SrV2o5x852844
2018/07/01(日) 08:32:31.95ID:YZ+qvhoO クロージャ(block)内のbreak は、クロージャを抜けるだけで、外側の関数は抜けない。
関数の最後まで実行される
クロージャ内のnext は、次の繰り返しに進むだけで、クロージャも抜けない。
クロージャの最後まで実行される
def f
num = 0
(0..5).each do |i|
num = i
break if i == 3
end
puts num
end
f() #=> 3
関数の最後まで実行される
クロージャ内のnext は、次の繰り返しに進むだけで、クロージャも抜けない。
クロージャの最後まで実行される
def f
num = 0
(0..5).each do |i|
num = i
break if i == 3
end
puts num
end
f() #=> 3
853デフォルトの名無しさん
2018/07/01(日) 08:58:20.58ID:mO0FHij0 すみませんがゴミの話は当該スレでお願いします
854デフォルトの名無しさん
2018/07/01(日) 09:01:20.31ID:TobyyIDd これ他の言語にも影響あるだろ
continueはバグの原因になるとか、gotoの方がマシとか言われる
continueはバグの原因になるとか、gotoの方がマシとか言われる
855デフォルトの名無しさん
2018/07/01(日) 09:18:30.80ID:5prQoZWD >>850
えー?closureが関数型特有な概念だと思ってるわけー?
面白いね、それ。本当は純粋関数型ではclosureはさほど重要ではないのだけど。
どうしてclosureが関数型固有な概念だと思ったのか、説明してごらん?
えー?closureが関数型特有な概念だと思ってるわけー?
面白いね、それ。本当は純粋関数型ではclosureはさほど重要ではないのだけど。
どうしてclosureが関数型固有な概念だと思ったのか、説明してごらん?
856デフォルトの名無しさん
2018/07/01(日) 09:22:52.78ID:TobyyIDd857デフォルトの名無しさん
2018/07/01(日) 09:23:49.76ID:FQlsc9Xo >>852
あなたが closure だからと主張する、block は 952の挙動だが Proc では break は例外吐くらしいけど何で?
# 言っちゃ悪いが、closure は定義した時点での環境を基準に動作が普通だと思うんで、
# ループ外で定義されているならば next/break は一律例外吐くで無いと一貫性がないようにしか見えん。
あなたが closure だからと主張する、block は 952の挙動だが Proc では break は例外吐くらしいけど何で?
# 言っちゃ悪いが、closure は定義した時点での環境を基準に動作が普通だと思うんで、
# ループ外で定義されているならば next/break は一律例外吐くで無いと一貫性がないようにしか見えん。
859デフォルトの名無しさん
2018/07/01(日) 09:25:25.69ID:89p34iy1 このbreakとnextは並列コレクションで困る気はする
860デフォルトの名無しさん
2018/07/01(日) 10:22:00.59ID:5prQoZWD861デフォルトの名無しさん
2018/07/01(日) 10:23:24.47ID:5prQoZWD >>856
で、関数型の人って誰?ばか?
で、関数型の人って誰?ばか?
862デフォルトの名無しさん
2018/07/01(日) 10:45:16.40ID:QlwNZjji Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判するくせに
他の言語より後に実装したclosureについては独自仕様でも問題ない、技術ベースで語れっておかしくね?
ダブスタも甚だしいだろ
他の言語より後に実装したclosureについては独自仕様でも問題ない、技術ベースで語れっておかしくね?
ダブスタも甚だしいだろ
863デフォルトの名無しさん
2018/07/01(日) 10:48:49.50ID:TobyyIDd 忖度とか伝言ゲームとかいう問題を織り込むまでがITです
864デフォルトの名無しさん
2018/07/01(日) 10:59:11.30ID:uHA6sqOS865デフォルトの名無しさん
2018/07/01(日) 11:00:03.93ID:7m3QggRW クロージャの方が自身の関数スコープを持ってる印象だな
メジャーな中では Java, C#, C++, JavaScript, Obj-C, Swift などがそうだし
Rubyのラムダも上記と概ね同じに見える
ブロックは文字通りコードの塊と考えるとreturnやbreakについて妥当な動きに見える
Proc.newは挙動がキモい
↓によるとdo…endも挙動が違うらしいから >>837 のリンク先は4種で比較した方がいいかもな
https://qiita.com/riocampos/items/43e4431ddff93e01a18d
メジャーな中では Java, C#, C++, JavaScript, Obj-C, Swift などがそうだし
Rubyのラムダも上記と概ね同じに見える
ブロックは文字通りコードの塊と考えるとreturnやbreakについて妥当な動きに見える
Proc.newは挙動がキモい
↓によるとdo…endも挙動が違うらしいから >>837 のリンク先は4種で比較した方がいいかもな
https://qiita.com/riocampos/items/43e4431ddff93e01a18d
866デフォルトの名無しさん
2018/07/01(日) 11:08:34.39ID:7m3QggRW 中身読んだら結合度の差だったので >>865 の最後2行は撤回する
867デフォルトの名無しさん
2018/07/01(日) 11:16:48.58ID:5prQoZWD868デフォルトの名無しさん
2018/07/01(日) 11:19:42.69ID:5prQoZWD869857
2018/07/01(日) 11:25:18.69ID:usR85dqh >>867
smalltalkには break や continue (next) はないだろう?
ruby のは、closure に break や next を持ち込んでおかしくなっているように見えるよ。
smalltalkには break や continue (next) はないだろう?
ruby のは、closure に break や next を持ち込んでおかしくなっているように見えるよ。
870デフォルトの名無しさん
2018/07/01(日) 11:43:42.24ID:fENDu7uP871デフォルトの名無しさん
2018/07/01(日) 11:52:10.11ID:tX8JlSDC 気持ち悪い挙動だと言いがかりをつける気満々のレスに対して
smalltalk でもそうだった昔からある挙動ですよと指摘しているだけでは。
なにも知らなければ議論はできない
といって smalltalk の知識は前提にしていいのかは疑問
とはいえやはり共通の知識がないと議論は無理だし難しいわ
smalltalk でもそうだった昔からある挙動ですよと指摘しているだけでは。
なにも知らなければ議論はできない
といって smalltalk の知識は前提にしていいのかは疑問
とはいえやはり共通の知識がないと議論は無理だし難しいわ
872デフォルトの名無しさん
2018/07/01(日) 12:46:18.88ID:fENDu7uP Smalltalkを前提にすることに意味はない(Rubyと周辺状況が違いすぎるのに何故真似た?)というのが
すぐ直前の議論では
すぐ直前の議論では
873デフォルトの名無しさん
2018/07/01(日) 12:59:23.83ID:gbNzWOju 俺を批判するのはSmalltalkを批判するのと同じだっていうことの意味は一応ある
自分自身を守るためではなく仲間を守るためという大義名分ができる
自分自身を守るためではなく仲間を守るためという大義名分ができる
874デフォルトの名無しさん
2018/07/01(日) 13:03:25.38ID:QlwNZjji 滅びた言語のヘンテコな機能を真似た言語が
やっぱりヘンテコになって滅びつつある
それだけの話ではある
やっぱりヘンテコになって滅びつつある
それだけの話ではある
875デフォルトの名無しさん
2018/07/01(日) 13:04:20.30ID:yp7ufL3+ もうRubyの話はやめよう
次世代でも現世代でもないし
次世代でも現世代でもないし
876デフォルトの名無しさん
2018/07/01(日) 13:25:35.07ID:5wbqPO3N なんで?
rubyは触ってないけど、rubykaigiとかで盛り上がってる様子見てると、楽しそうだし盛り上がってる感あるけど。未だ現役じゃないの?
スタートアップがrails採用するイメージって、まだ古くないよね?
最近だとrailsのボトルネック部分をgoで書く話が面白かった。
rubyは触ってないけど、rubykaigiとかで盛り上がってる様子見てると、楽しそうだし盛り上がってる感あるけど。未だ現役じゃないの?
スタートアップがrails採用するイメージって、まだ古くないよね?
最近だとrailsのボトルネック部分をgoで書く話が面白かった。
877デフォルトの名無しさん
2018/07/01(日) 13:42:13.57ID:k6Y+DK56 perlの後継になりそこなったし
海外の人気がかなり落ちてるからね
rails用言語で終わってしまった感
海外の人気がかなり落ちてるからね
rails用言語で終わってしまった感
878デフォルトの名無しさん
2018/07/01(日) 13:43:43.18ID:3SrV2o5x railsにincludedされてるバッテリーだろ?www
879デフォルトの名無しさん
2018/07/01(日) 13:57:23.22ID:5wbqPO3N つーかrails言語で別に良くないか?
言語なんて所詮はツールなんだから。
bashでwebサービス作るやつはいないだろ?
言語なんて所詮はツールなんだから。
bashでwebサービス作るやつはいないだろ?
880デフォルトの名無しさん
2018/07/01(日) 14:06:40.12ID:gbNzWOju 目的と結果を比較されるから
目的はこれだったのに結果はこれなのか?と
目的などどうでもいいと断言できる人は少ない
目的はこれだったのに結果はこれなのか?と
目的などどうでもいいと断言できる人は少ない
881デフォルトの名無しさん
2018/07/01(日) 15:32:54.19ID:5prQoZWD882デフォルトの名無しさん
2018/07/01(日) 15:34:06.79ID:2efWQwxv 薬? お薬の幻覚でも見えてんのか?
883デフォルトの名無しさん
2018/07/01(日) 15:40:22.85ID:QlwNZjji Smalltalkという完全に終わった言語に執着してるんだから
まあフツーに頭がおかしいんでしょう
薬飲めも普段自分が言われてるんだろうね
まあフツーに頭がおかしいんでしょう
薬飲めも普段自分が言われてるんだろうね
884デフォルトの名無しさん
2018/07/01(日) 15:55:04.17ID:2efWQwxv 自分が言われたら嫌なことを人に言うって奴かw
885デフォルトの名無しさん
2018/07/01(日) 16:07:47.75ID:rXvfzJkI ここでも見てとれるようにRubyは言語と言うより信者がクソ。
他言語のスレで聞いてもないのにルビーデワールビーデワー宣伝必死過ぎてウザい。
Ruby自体は悪くない。
他言語のスレで聞いてもないのにルビーデワールビーデワー宣伝必死過ぎてウザい。
Ruby自体は悪くない。
886デフォルトの名無しさん
2018/07/01(日) 16:15:05.64ID:lS5AQxvk >>885
同感
同感
887デフォルトの名無しさん
2018/07/01(日) 16:33:48.43ID:gbNzWOju 陰謀論みたいに、お前が世界を支配してるんだろって言われるのは嫌じゃないが
888デフォルトの名無しさん
2018/07/01(日) 17:13:50.39ID:fENDu7uP889デフォルトの名無しさん
2018/07/01(日) 17:30:42.04ID:009IG+wv890デフォルトの名無しさん
2018/07/01(日) 17:32:52.47ID:i54g35bC >>889
同感
同感
891デフォルトの名無しさん
2018/07/01(日) 17:49:59.60ID:5prQoZWD892857
2018/07/01(日) 18:07:48.02ID:FQlsc9Xo893デフォルトの名無しさん
2018/07/01(日) 18:22:04.92ID:IY9E+BQR Perlさん何で死んでもうたん?
894デフォルトの名無しさん
2018/07/01(日) 18:23:52.18ID:mbUvUy2m Perlはワンライナーとして生き残ったのさ
895デフォルトの名無しさん
2018/07/01(日) 19:07:07.35ID:QlwNZjji >>891
まあお前がSmalltalk信者かどうかは見た人間が判断するから気にするな。病気が進行するぞ
ただ客観的な事実としてSmalltalkは完全なオワコンw
このスレでは場違いすぎて引くレベル
まあお前がSmalltalk信者かどうかは見た人間が判断するから気にするな。病気が進行するぞ
ただ客観的な事実としてSmalltalkは完全なオワコンw
このスレでは場違いすぎて引くレベル
896デフォルトの名無しさん
2018/07/01(日) 19:34:13.12ID:5wbqPO3N >>894
わかる。awkよりも使い勝手はいい。正規表現処理ツールとして有り。ふとnode.jsでもいい気がしたけど
わかる。awkよりも使い勝手はいい。正規表現処理ツールとして有り。ふとnode.jsでもいい気がしたけど
897デフォルトの名無しさん
2018/07/01(日) 19:46:03.96ID:x/qhOfWF スレタイ読まずに書き込んでる奴らなんなの?
898デフォルトの名無しさん
2018/07/01(日) 19:51:05.54ID:e+fGbKAY >>862
> Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判する
それは「批判」ではなく、理解や運用の混乱を避けるための「区別」の必要性を訴えているのです。
「オブジェクト指向」もそうで、Smalltalkが重きを置く「決定の遅延のためのメッセージングのオブジェクト指向」と
C++以降の「抽象データ型をクラス(またはそれに準ずるエンティティ)で実現するオブジェクト指向」とは区別すべきと一緒です。
批判があるとすればそれは、本質的に違うものに後から同じ名前を付けて混乱を招いていることに対するものでしょうね。
> Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判する
それは「批判」ではなく、理解や運用の混乱を避けるための「区別」の必要性を訴えているのです。
「オブジェクト指向」もそうで、Smalltalkが重きを置く「決定の遅延のためのメッセージングのオブジェクト指向」と
C++以降の「抽象データ型をクラス(またはそれに準ずるエンティティ)で実現するオブジェクト指向」とは区別すべきと一緒です。
批判があるとすればそれは、本質的に違うものに後から同じ名前を付けて混乱を招いていることに対するものでしょうね。
899デフォルトの名無しさん
2018/07/01(日) 20:00:26.61ID: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 の複雑な状況の説明を試みるのはあまりよい方法ではないのは確かですね。
> 他の言語より後に実装した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 の複雑な状況の説明を試みるのはあまりよい方法ではないのは確かですね。
900デフォルトの名無しさん
2018/07/01(日) 20:01:01.72ID:gbNzWOju901857
2018/07/01(日) 21:20:45.24ID:FQlsc9Xo902デフォルトの名無しさん
2018/07/01(日) 21:23:13.47ID:mO0FHij0 掲示板の書き込みに#で補足コメントするスタイルはキモすぎる
903デフォルトの名無しさん
2018/07/01(日) 21:23:34.86ID:8lWKFGMK どんな言語も最初は簡単で使いやすいと言う。
しかし、注目されて実用レベルになると言語仕様が破綻してくる。
お前さんが使っている次世代言語もいつのまにか消えてなくなるさ
しかし、注目されて実用レベルになると言語仕様が破綻してくる。
お前さんが使っている次世代言語もいつのまにか消えてなくなるさ
904デフォルトの名無しさん
2018/07/01(日) 21:28:36.04ID:jMta/5/n とりあえず動的言語嫌いだから次世代に遺さなくていいよ
905デフォルトの名無しさん
2018/07/01(日) 22:10:15.50ID:iGjgOveK せやな
// 型なし糞言語は死ね
// 型なし糞言語は死ね
906デフォルトの名無しさん
2018/07/01(日) 22:47:05.58ID:IY9E+BQR 米は//より#のが好きです
//や’はスカスカし過ぎててなんか
//や’はスカスカし過ぎててなんか
907デフォルトの名無しさん
2018/07/01(日) 23:13:47.55ID:CF9fODYJ まーたsmalltalker来てんのか。草
908デフォルトの名無しさん
2018/07/01(日) 23:27:37.29ID:eYdB7t9V909デフォルトの名無しさん
2018/07/01(日) 23:41:20.04ID:YPIrazbz ‘
910デフォルトの名無しさん
2018/07/02(月) 02:35:06.08ID:1yNW4Sj0 スクリプト言語はshebangあるから#じゃないとうれしくないな
コンパイル言語は好きにすればええ
コンパイル言語は好きにすればええ
911デフォルトの名無しさん
2018/07/02(月) 03:45:57.45ID:sK89Ta1p912844
2018/07/02(月) 06:42:05.84ID:9wGdj7CA >>857
Ruby のProc, block はクロージャで、
Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの
その際、block内でbreak を呼ぶと、ループ処理が完遂せず、失敗とみなしたのだろう
ラムダは後に作られたから、return で値を返すようにした
結局、Proc, block、ラムダ、クラス・モジュールも、
スコープチェーンという単一の概念から出来ている
自分の1つ外側のスコープを指す、ポインタを持っている
Ruby のProc, block はクロージャで、
Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの
その際、block内でbreak を呼ぶと、ループ処理が完遂せず、失敗とみなしたのだろう
ラムダは後に作られたから、return で値を返すようにした
結局、Proc, block、ラムダ、クラス・モジュールも、
スコープチェーンという単一の概念から出来ている
自分の1つ外側のスコープを指す、ポインタを持っている
913デフォルトの名無しさん
2018/07/02(月) 09:01:43.20ID:Ovw/GWMA914デフォルトの名無しさん
2018/07/02(月) 09:17:09.45ID:BcUDQh/y > Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの
これしょうもない設計だよな。
jsとかだったらコールバック関数で統一的に扱えてるところだろ。
こんな本質じゃない言語機能ムダに複雑にして何やってんだか。
わざとパズル難しくして解いて「楽しい」こんな言語かな?
これしょうもない設計だよな。
jsとかだったらコールバック関数で統一的に扱えてるところだろ。
こんな本質じゃない言語機能ムダに複雑にして何やってんだか。
わざとパズル難しくして解いて「楽しい」こんな言語かな?
915857
2018/07/02(月) 09:49:51.97ID:OVGUyhuB >>912
あなたがrubyを好きなのはよくわかる、が
>結局、Proc, block、ラムダ、クラス・モジュールも、
>スコープチェーンという単一の概念から出来ている
>
>自分の1つ外側のスコープを指す、ポインタを持っている
単一の概念にするのは失敗してるんだ
理由は簡単、blockにbreakがあるせい。breakの飛び先は、通常のlexcal scope では解決できない。飛び先は定義時と関係ない、後で呼び出される each などのblockを呼び出す関数内に有るからな
他の内部イテレータ使う言語は、諦めて例外やcall/ccなどの大域ジャンプでエミュすることにしてる。
rubyは頑張ってなんとかしようとして、結局統一出来ず、でも似てるから使用が困惑する結果に
あなたがrubyを好きなのはよくわかる、が
>結局、Proc, block、ラムダ、クラス・モジュールも、
>スコープチェーンという単一の概念から出来ている
>
>自分の1つ外側のスコープを指す、ポインタを持っている
単一の概念にするのは失敗してるんだ
理由は簡単、blockにbreakがあるせい。breakの飛び先は、通常のlexcal scope では解決できない。飛び先は定義時と関係ない、後で呼び出される each などのblockを呼び出す関数内に有るからな
他の内部イテレータ使う言語は、諦めて例外やcall/ccなどの大域ジャンプでエミュすることにしてる。
rubyは頑張ってなんとかしようとして、結局統一出来ず、でも似てるから使用が困惑する結果に
916デフォルトの名無しさん
2018/07/02(月) 10:18:33.33ID:nMhGW4st >>913
このレスの方が怖い
このレスの方が怖い
917デフォルトの名無しさん
2018/07/02(月) 10:41:05.97ID:XQH9Y7UX 連想配列[名前] = ラムダ
こうして連想配列と代入とラムダで統一すればclassは本質ではないのに
統一を阻止して、classを次世代に遺そうとするのはRubyもECMAScriptも同じ穴の狢
こうして連想配列と代入とラムダで統一すればclassは本質ではないのに
統一を阻止して、classを次世代に遺そうとするのはRubyもECMAScriptも同じ穴の狢
918デフォルトの名無しさん
2018/07/02(月) 10:47:23.08ID:j4QNCpln まだ80年代の技術に追いつけないのか、次世代言語wスレの住民は…ばか?
919デフォルトの名無しさん
2018/07/02(月) 10:50:09.56ID:FaPINm7E Smalltalkとか言うカビ臭いクソ言語について語ってるやつの頭の中だけ80年代で止まってるけど
他の人は普通に話ししてると思うけど
他の人は普通に話ししてると思うけど
920デフォルトの名無しさん
2018/07/02(月) 13:03:54.58ID:EdW/pwjk921デフォルトの名無しさん
2018/07/02(月) 19:19:13.27ID:NAI8Vih0 建て前上だけでもclassを消したら次世代感あると、思います
922デフォルトの名無しさん
2018/07/02(月) 19:39:32.22ID:NyO7x8zO >>921
ハスケルばかにしてる?
ハスケルばかにしてる?
923デフォルトの名無しさん
2018/07/02(月) 19:42:13.22ID:HeCnpISr アンチMicrosoftを掲げる以上、Rubyを使うべきだろね。
924デフォルトの名無しさん
2018/07/02(月) 20:33:18.53ID:9WbprnCr クロージャの問題は結局変数の評価タイミングが分かりづらくなりやすいってところ。
common lispはその点わかりやすい。
common lispはその点わかりやすい。
925デフォルトの名無しさん
2018/07/02(月) 20:47:10.91ID:HeCnpISr あちらこちらに分身がいて、どれかを書き換えると他に影響してしまう。
そんな混とんとした世界で生き抜くにはいろいろなものが必要になる。
つまり、コピーとムーブが一番楽。
そんな混とんとした世界で生き抜くにはいろいろなものが必要になる。
つまり、コピーとムーブが一番楽。
926デフォルトの名無しさん
2018/07/02(月) 20:47:29.49ID:nj5wv8+r >>920
goとかjsとかparser用意しないとast作れないところを見るとlispが次世代感あるように感じてきた
goとかjsとかparser用意しないとast作れないところを見るとlispが次世代感あるように感じてきた
927デフォルトの名無しさん
2018/07/02(月) 20:50:20.50ID:lajLSwSc >>917>>921
やはりここはLuaの出番か
やはりここはLuaの出番か
928デフォルトの名無しさん
2018/07/02(月) 21:36:57.09ID:F0SAJ301 luaはnginxと組みわせて使う
929デフォルトの名無しさん
2018/07/02(月) 21:49:01.21ID:TJD/4INa930デフォルトの名無しさん
2018/07/02(月) 21:51:14.33ID:vpeKf2Dq Lispはいいぞ
931デフォルトの名無しさん
2018/07/02(月) 21:58:33.96ID:SHnfHk0h >>920
社会に出ろよ。
社会に出ろよ。
932デフォルトの名無しさん
2018/07/02(月) 21:59:57.72ID:JnEvidvy933デフォルトの名無しさん
2018/07/02(月) 22:00:32.20ID:9WbprnCr algol系のシンタックスに合わせてる方が無理がある。
934デフォルトの名無しさん
2018/07/02(月) 22:06:32.06ID:3279IT8S 久々に社会に出てみたら、
青春を捧げたRubyがすっかりオワコンになってて哀しいです(^q^)
青春を捧げたRubyがすっかりオワコンになってて哀しいです(^q^)
935デフォルトの名無しさん
2018/07/02(月) 22:27:57.20ID:sXgZmTLa インターンってRubyばっかだな
素人学生にRuby書かせるとか頭おかしなるで
正気か?どうゆうロジックなんだ?
素人学生にRuby書かせるとか頭おかしなるで
正気か?どうゆうロジックなんだ?
936デフォルトの名無しさん
2018/07/02(月) 22:42:00.11ID:F0SAJ301 世代的にrubyで育ったリーダが多いからじゃない
外資ではgoとかpythonが多い
メガネのヒョロガリが写真に写っていてRoRエンジニアを募集してたらまずハズレだ
外資ではgoとかpythonが多い
メガネのヒョロガリが写真に写っていてRoRエンジニアを募集してたらまずハズレだ
937デフォルトの名無しさん
2018/07/03(火) 00:16:39.10ID:ulFfuTSn 何故breakにしたんだろねRuby。returnじゃ駄目だった理由が分からない
938844
2018/07/03(火) 01:06:30.72ID:LtnxPY8P Ruby では、break, return、例外も、単一の同じ仕組みを使っている。
コールスタックをさかのぼるポインタ。
つまり、どこから呼ばれて、どこへ戻るか
breakは、1つ外側のスコープへ戻る。
returnは、最も外側のスコープを抜ける
(レキシカル)スコープチェーンと、コールスタックの2大柱。
実装系・VM を作るには、この本がおすすめ
Rubyのしくみ、2014
Rubyの実装系、Ruby1.9のRuby仮想マシンの内部の仕組み
コールスタックをさかのぼるポインタ。
つまり、どこから呼ばれて、どこへ戻るか
breakは、1つ外側のスコープへ戻る。
returnは、最も外側のスコープを抜ける
(レキシカル)スコープチェーンと、コールスタックの2大柱。
実装系・VM を作るには、この本がおすすめ
Rubyのしくみ、2014
Rubyの実装系、Ruby1.9のRuby仮想マシンの内部の仕組み
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
