18/06/16 23:47:44.87 4s/pndVS.net
そもそもやってるやつの目的が
やってないやつが多い概念のがマウント取れるってことだからな。
そりゃ流行らんわ
494:デフォルトの名無しさん
18/06/16 23:59:04.83 XHjnJq29.net
なんやその目的
単純にコードの重複削って短くしたいだけやぞ
495:デフォルトの名無しさん
18/06/17 00:04:06.00 WrHoE2Bg.net
で、短くかけるぜってどやりたいだけだろ。
だからなぜ短く書くことに意味があるのか少し考えてみろと思うわけだ。
496:デフォルトの名無しさん
18/06/17 00:12:37.76 Zsovn15r.net
短く書けたらコード書き始めから書き終わりまでの時間が短くなるし、拡張が楽になる場合も多い
497:デフォルトの名無しさん
18/06/17 00:16:24.79 erltHdM+.net
依存型は短くするための機能というよりバグを減らすための機能だと思うが
498:デフォルトの名無しさん
18/06/17 00:19:07.06 Zsovn15r.net
ID:4s/pndVSは依存型の話というより関数型とかの技法一般のこと話してると思うし……
499:デフォルトの名無しさん
18/06/17 00:47:57.66 GmOBMD4N.net
仮にマウント目的ならそれは生産というより消費
高級な車や時計を買うようなもの
そういうのは無意味だとして質素倹約を推奨する意見は大昔からある
500:デフォルトの名無しさん
18/06/17 00:56:52.43 u2X2MJCJ.net
確かにmizchiみたいなのが鬱陶しいのはわかるけどさぁ
それと技術評価は切り離して考えないとだめでしょうよ
501:デフォルトの名無しさん
18/06/17 01:02:17.83 erltHdM+.net
2,30年位前もきっとオブジェクト指向なんて研究者のオモチャで
実務では必要ないって騒いでた奴がいたんだろうなぁ…
502:デフォルトの名無しさん
18/06/17 01:25:47.44 TG/aPZPS.net
間口は広くしてるけど、言語仕様的は可能でもやっちゃいけないことが多くて後々困るのがOOP
503:デフォルトの名無しさん
18/06/17 03:11:46.16 cij7m28f.net
効率にしろ何にしろ例え多少良くなるからと言って新しいもの作る時
その学習コストもそろそろ計算に入れてもらわないと困る
コード多少短く書けるからと言ってまた1からの学習コストもキツい、
504:デフォルトの名無しさん
18/06/17 03:20:04.64 Zsovn15r.net
大丈夫。良いものはそのうち良書が出て学習コストは下がる
深層学習の学習コストが二年前と今で全然違うように。
学習コストを気にする人は新しい物に飛びつかないほうが良いよ。そのうち良い解説本が出るから
505:デフォルトの名無しさん
18/06/17 08:05:48.87 p2Sm4Lro.net
依存型って何に使うのこれ
TSの文字リテラル型みたいなやつかね
506:デフォルトの名無しさん
18/06/17 08:38:14.11 wAOriGtt.net
依存型をド型で例えるのやめれ
507:デフォルトの名無しさん
18/06/17 08:41:46.19 4b7uuLRW.net
言語仕様棒で叩き合え
508:デフォルトの名無しさん
18/06/17 09:51:43.75 WRt6LELS.net
>>485
それって本当に幸せになれる仕組みなの?
それならわかりやすく説明頼む。
一人でちまちま作るようなものなら、
学習コスト高くても構わないけど、
現実問題として人材不足だからな。
TypeScriptエンジニアすら不足気味でC#とかCのエンジニア入れたり趣味でしか触ったことないエンジニア入れたりしてる
509:デフォルトの名無しさん
18/06/17 10:05:40.01 erltHdM+.net
>>501
人材不足なら人材集めろよ…
なんで人材不足の対処として新しい技術を求めようとしてるんだよ…
新しい技術なら当然それを使える人も少ないんだから
んなもん人材不足の現場に持ち込んだらますます人材不足なるだけだろ…
何がしたんだお前?
510:デフォルトの名無しさん
18/06/17 10:52:36.75 4b7uuLRW.net
人材不足を解消する未来テクノロジーX-men~Silver Dan-Gan~を求めてるんだろ
511:デフォルトの名無しさん
18/06/17 11:13:15.20 a73jVlJK.net
TypeScriptとC#に互換性がないのは冗長でありDRYに反する
ATSは他の言語に似ていないので冗長ではない
512:デフォルトの名無しさん
18/06/17 11:37:42.31 Rc+TyNTC.net
学習コストって、別に新言語のコストだけではなくて、
今動いてる、ずっと保守されてきたソースを新人に保守できるように教育するのも学習コストだからな。
どっちに振るかの問題だと思う。新しい言語に(その学習コストを払うほど)興味がない人にとっては。
言語好きはその学習コストを手弁当で補いがちだけど、それも本来はちゃんと計上すべきだと思うんだけどなぁ。
513:デフォルトの名無しさん
18/06/17 12:31:38.21 aJjY8hhI.net
>>505
>>497だよ。そもそもこのスレは「次世代」を銘打ってるんだから、対象の情報ソースがまだ少なくて学習コストが高いのは当たり前
ここはあなたのような人が見るべきスレじゃない
514:デフォルトの名無しさん
18/06/17 15:14:55.67 NZRREY9d.net
TypeScript, ES2015 は、学習コストが高い。
大規模開発に向く、きれいな言語仕様は、Haxe
初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発、オライリー、2017
上を読めば、愕然とする。
皆、下のサイの表紙の、サイ本で苦しんだろ。それと同じ
JavaScript 第6版、2012、David Flanagan
515:デフォルトの名無しさん
18/06/17 15:28:49.00 Wo64nPZg.net
上と下じゃ全然レベル違うがw
下はともかく上で苦しんだんならはっきり言って才能無いからやめるといいよ。
同じとか笑うわww
お前が何を読んでも理解できないだけ。
そりゃお前にとっちゃ何でも「同じ」だわな。
等しく理解できないwwww
516:デフォルトの名無しさん
18/06/17 15:29:16.42 4b7uuLRW.net
ハクセなんてくさそうな言語聞いたこともねーぞバーカ
517:デフォルトの名無しさん
18/06/17 15:34:02.21 iWNJr2Uz.net
プログラミングできない奴ほど新興言語に飛び付くよね RustやらDやら
本当に分かってるやつはJava8使う。これが真に次世代
518:デフォルトの名無しさん
18/06/17 16:08:32.26 4b7uuLRW.net
>>510
新しいことを学べなくなったド型ゲェジ老害じいさん
かわいそ
519:デフォルトの名無しさん
18/06/17 16:10:09.21 8e4AMBWv.net
>>510
URLリンク(i.imgur.com)
520:デフォルトの名無しさん
18/06/17 16:12:12.31 NZRREY9d.net
JS, TypeScript では、this の挙動が変だから、皆、that に代入して使う。
that = this
Haxe では、こういう事はない
下のような引数付き、enum もある。
一々、抽象クラス・インターフェースを書かなくても、多様な入力方式に対応できる
enum Input {
Key (keyCode:int);
Click (x:int, y:int);
}
switch (input) {
case Input.Key (keyCode):
case Input.Click (x, y):
}
パターンマッチも使えるし、Elixir に似てる
521:デフォルトの名無しさん
18/06/17 16:19:53.70 iWNJr2Uz.net
>>511
>>512
現場知らん小僧に言われてもな……
522:デフォルトの名無しさん
18/06/17 16:22:09.07 iWNJr2Uz.net
「新しいものを導入しよう」とか脳死でわめくガキに現場しっちゃかめっちゃかにされる経験がないのか
それとも逆に現場ひっかきまわす側のガキなのか
次世代っていうのは目新しさで決めるもんじゃないだろ
523:デフォルトの名無しさん
18/06/17 16:22:47.73 SIx1eJMh.net
>>514
現場知ってるならJava8なんて出てこない
あ、奴隷かごめんね
524:デフォルトの名無しさん
18/06/17 16:24:24.84 aJjY8hhI.net
Dが目新しいってマジ?
525:デフォルトの名無しさん
18/06/17 16:28:42.12 iWNJr2Uz.net
>>516
5、6年後くらいのリプレイス時にJava8導入するかもしれないから互換性の下調べしてる段階な
お前のいう「現場知って」る奴ならどんな言語出すんだ?
まさかことりんとか言わんよな?
526:デフォルトの名無しさん
18/06/17 16:32:58.06 8e4AMBWv.net
このスレに上がってるような言語を実践投入する時はそら1990年代にJavaを投入した時のように慎重にいかないといかんでしょ
脳死での実践投入なんて発想が最初に出てくるとかガイジか。いや、ドカタだからそういう常識が欠けているのか。ごめんね?
527:デフォルトの名無しさん
18/06/17 16:33:35.47 yCU9+KnB.net
商用開発的に色んな側面考慮してJava8選択するのは特におかしいとは思わないけど
次世代呼びは流石に無茶やって
528:デフォルトの名無しさん
18/06/17 16:35:35.09 iWNJr2Uz.net
>>519
おまえさんは違うと思うが、
実際いるんだよ脳死実践投入主張するガキが……
529:デフォルトの名無しさん
18/06/17 16:38:30.24 iWNJr2Uz.net
>>520
Java8が次世代じゃないとか言い出すとは思わんかった
Java8以上に新しい言語は次世代通り越して未完成言語って言ってもいいわ
530:デフォルトの名無しさん
18/06/17 16:44:30.75 8dIO3AYC.net
>>513
使ってる案件あります?
TypeScriptはES2015+型って考えでとりあえずは使えるから、学習コストは低い。
this問題はアロー関数でも使っとけばいい。
531:デフォルトの名無しさん
18/06/17 16:46:16.06 8dIO3AYC.net
>>502
人材がいないのにどうやって集めろっていうの?
532:デフォルトの名無しさん
18/06/17 16:50:08.16 8dIO3AYC.net
>>502
別に新しい技術で人材不足を解消しようって話はしてないよ。
間違った行間読みはやめろ。
純粋に案件を始めるにあたって、
言語を特殊なものにすると、人材が集めづらいだろって話。
TypeScriptというメジャー寄りの言語ですら、専門以外エンジニアになりがちって話。
ちなみにTypeScriptは学習コストは低いほうだ。
533:デフォルトの名無しさん
18/06/17 17:00:54.21 TG/aPZPS.net
サポート切れるのに今からJava8を選ぶって逆に脳死過ぎだわ
The老害にも程がある
534:デフォルトの名無しさん
18/06/17 17:03:31.92 4b7uuLRW.net
>>514
現場ワロタ
おまえに必要なのはJavaでもTypeScriptでもない
Excel方眼紙だ!
535:デフォルトの名無しさん
18/06/17 17:12:42.29 u2X2MJCJ.net
JVM系言語は全滅と思っていいのかね
536:デフォルトの名無しさん
18/06/17 17:43:45.20 erltHdM+.net
>>524
知るか。派遣でもなんでも雇えば良いだろ?
>>525
> 間違った行間読みはやめろ。
すまんな…でも、あの文脈じゃそういう風に受け取られても仕方ないと思うけど…
> 言語を特殊なものにすると、人材が集めづらいだろって話。
集めづらいよ。だから慎重に検討する必要はあるし、手放しに喜んで良い機能じゃない
ただ時々「慎重に検討する」を曲解して「結局、絶対に採用されない」と
新しい技術そのものを否定しようとするヤツが居るんで
それは違うだろ?将来に備えて勉強しておく必要はあるだろ?
自分が理解できなかったのを正当化するための言い訳だろ?って言いたい
あと、慎重に検討した結果、採用したとして、それでも失敗した場合は
それは経験として受け入れるべきであって失敗として否定するべきではない
ある程度のリスクは受け入れないと、失敗はしなかったとしても成功もしない
どの程度のリスクを許容するかのバランスの問題であって、
全くリスクを受け入れようとしない企業は所詮その程度の企業だってこと
537:デフォルトの名無しさん
18/06/17 17:53:45.44 iWNJr2Uz.net
>>527
Excelも年々進化してるんだがお前は知らんのか?
バカにしてるやつはその程度か
538:デフォルトの名無しさん
18/06/17 17:55:57.69 OuCJaAt5.net
図星で草
539:デフォルトの名無しさん
18/06/17 18:10:25.08 7oGqe5zS.net
おじいちゃんにはkotlinは難しすぎるらしい
540:デフォルトの名無しさん
18/06/17 18:16:25.72 SIx1eJMh.net
>>518
5、6年後にJava8www
541:デフォルトの名無しさん
18/06/17 18:43:07.15 iWNJr2Uz.net
>>533
なんかおかしいか?枯らす期間としては短い方だろ
542:デフォルトの名無しさん
18/06/17 18:54:54.59 a73jVlJK.net
寿司職人が5、6年修行しているようなものか
半年でできらぁって誰かが言い出したとしてお前らはそいつを倒せるのか?
543:デフォルトの名無しさん
18/06/17 19:15:51.85 SIx1eJMh.net
>>534
何がおかしいのかわからないようならこの業界やめた方がいい
544:デフォルトの名無しさん
18/06/17 19:18:30.51 510xBBBe.net
Java8のどこらへんが次世代なのかは言わんのな
545:デフォルトの名無しさん
18/06/17 19:26:09.30 iWNJr2Uz.net
>>535
倒すだの勝つだの物騒な話してねえから
安定したプログラムを工数圧縮して作るのが目的だから
546:デフォルトの名無しさん
18/06/17 20:20:10.90 En9MtaF9.net
>>518
Java8 のサポート期間いつまでか知ってるかい?
547:デフォルトの名無しさん
18/06/17 20:25:05.46 p2Sm4Lro.net
たぶ今頃サンに問い合わせてるんだろな
548:デフォルトの名無しさん
18/06/17 20:38:25.12 SLSvvYl3.net
導入したい技術は、きちんと上司に根回しして
承認印を頂くこと
549:デフォルトの名無しさん
18/06/17 20:43:39.42 dJUJdMR3.net
上司がバカな可能性も十分あるからなんとも言えん。
しかし、同じくらいの割合でバカな新人が新しいクソツールをねじ込むこともあるからな。
一般に表面だけ見て判断はできんわ。
550:デフォルトの名無しさん
18/06/17 20:50:01.61 wbEMQisX.net
五年後からJava8とか地獄のような現場もあったもんだな
現場を知らなかったわ
551:デフォルトの名無しさん
18/06/17 20:55:06.44 wY+r/3B/.net
アップデートがあるうちはまだまだ未完成
LTSが終了したところで真の安定板になるのですよ…
552:デフォルトの名無しさん
18/06/17 21:26:03.64 u2X2MJCJ.net
そろそろ次世代の話がしたい
553:デフォルトの名無しさん
18/06/17 21:27:10.33 wbEMQisX.net
現場知ってる人にASTの話題流されたからな
554:デフォルトの名無しさん
18/06/17 21:34:27.48 Nk/Dtbgv.net
Java8は流石にネタだと信じたい
ネタとしては面白かったけど
555:デフォルトの名無しさん
18/06/17 21:44:52.52 Zsovn15r.net
面白かった次スレから入れるか?w
556:デフォルトの名無しさん
18/06/17 22:04:53.41 SLSvvYl3.net
やれやれ・・・(肩をすくめ、冗談だろ?と失笑しながら、イケメンを少し崩した変顔でつぶやく僕)
557:デフォルトの名無しさん
18/06/17 22:19:46.98 IxLGC6rA.net
昔クソツールと言ってgradleを拒否した爺さんが弊社にいた
蓋を開けてみると新しいからダメっていうか爺さんがわからないからごねてただけだった
爺さん今はKotlinを猛烈に攻撃してる
こういうのって沢山あるんだろうな
558:デフォルトの名無しさん
18/06/17 22:32:18.24 EBuoSE6p.net
サポート終わったものは社内のセキュリティ監査で引っかかるから使えんけどなあ
559:デフォルトの名無しさん
18/06/17 22:36:34.77 dJUJdMR3.net
>>550
逆もまた然り。
rails 無理やり使わせてメンテせず逃げたバカを何人も知っとるわ。
560:デフォルトの名無しさん
18/06/17 22:59:16.75 iFYzb9cl.net
ドカタ言語としてはJava SE 1.4くらいがちょうどよかった。あれのLTSがあったらなぁ。
561:デフォルトの名無しさん
18/06/17 23:00:14.53 9aKhKpN8.net
C#やりたいなあ
562:デフォルトの名無しさん
18/06/17 23:06:55.31 SLSvvYl3.net
railsはさすがにゴミですわ
ド型にすらなれないゴミ
563:デフォルトの名無しさん
18/06/17 23:21:54.59 p2Sm4Lro.net
グレードルもクソだと思うけどそもそもjavaがクソなのでツールを責めるのは酷だすな
コトリンは救いようがない滅せよ
564:デフォルトの名無しさん
18/06/17 23:28:49.24 dJUJdMR3.net
言語もそうだがクソなものを勧めてくる奴の特徴は
おそろしくモジュラリティーの低いものばっかり勧めてくるってところだ。
565:デフォルトの名無しさん
18/06/17 23:47:42.67 Zsovn15r.net
その発言!η変換すると「クソなものはモジュラリティが低い」になるぜ!
566:デフォルトの名無しさん
18/06/18 00:41:09.48 szLLB6p9.net
>>556
やっぱりそうなったか…
場当たり的な甘さがこれほど早く破綻をまねく分野もない
567:デフォルトの名無しさん
18/06/18 00:44:39.69 szLLB6p9.net
>>559
kotlinなにがだめだったん?
568:デフォルトの名無しさん
18/06/18 00:44:54.86 szLLB6p9.net
>>556
569:デフォルトの名無しさん
18/06/18 00:56:40.78 5zfP7m4z.net
gradleがクソはまあわかるがantよりはマシ
爺さんがごねなきゃ最低のクソから並みのクソぐらいには昇格できたかもしれない
新技術拒否爺さんは業務効率化を阻む害悪でしかない
570:
18/06/18 01:07:58.13 OiAJbwiy.net
>>555
今から rails に取り組もうと思っていたのですが…(?然)
571:デフォルトの名無しさん
18/06/18 01:49:33.50 2+ok0PtZ.net
気にすんな。世の中には自分の能力が足りなくて理解できないものをクソだということにして
自分の心を安定させようとするやつが居るってだけのことだから。そういうやつは何千年も
前から居る。ほとんど人間という動物の習性だと思っていい。誰でもそういう状態にハマる
可能性がある。ハマってる最中はそいつは他をクソ呼ばわりするだけで新たな事は何も
学習しなくなるので馬鹿な状態が維持されて発展しない。
572:デフォルトの名無しさん
18/06/18 07:01:11.25 Jei0+sA2.net
>>563
いい加減に板を荒らすのやめろよ
特にここ最近はRubyスレを荒らしまくって何考えてんだ?
573:デフォルトの名無しさん
18/06/18 07:13:46.91 wJzzPYpc.net
>>564
歴史に何も学ばないやつに発展はない。
URLリンク(anond.hatelabo.jp)
565はこの種のバカなことを引き起こしといてトンズラするタイプだな。
だいたいこのタイプは仕様が満たされるものだと過信してるタイプで
機能の堅牢性なんてまともにチェックしてない。
574:デフォルトの名無しさん
18/06/18 07:25:45.84 OPxRI0Cf.net
歴史を学習した人間より科学を学習した自動運転の方が安全というのが
シンギュラリティの思想だよな
575:デフォルトの名無しさん
18/06/18 08:03:14.74 GT4ypnkz.net
>>564
それを「固定された思考態度」という。
576:デフォルトの名無しさん
18/06/18 08:19:55.49 AHTeguQN.net
どっちも危険な盲信になりえる
>>564 みたいに一方的なのは危険
577:デフォルトの名無しさん
18/06/18 10:03:33.26 1wi3jEJk.net
「新しいものをバカみたいに導入しようとする奴は危険」ってのはまあその通りなんだが
上の「5年後にJava8を導入おじさん」も同じくらい危険人物な訳で
結局突き詰めてメリデメリをジャッジできる思考力ないだけのバカは開発を地獄にするってのは変わらんよね
578:デフォルトの名無しさん
18/06/18 11:21:38.28 cgeQ1bE7.net
プロコンという語を覚えると便利だよ>メリデメリ
英語のプレゼンでprosとかconsとか見たことあるでしょ?まあ英語というかラテン語なんだけど。
579:デフォルトの名無しさん
18/06/18 11:40:21.90 OPxRI0Cf.net
デメリット、コスト、人月の見積もり
見積もりを妄信するのも危険と言われる
580:デフォルトの名無しさん
18/06/18 13:11:53.12 byOf5Soa.net
>>449
>>>448
>なんと!
>日本語審査会で審議しないといけないな。
言い忘れたがこの混同は英語でもある
というか放射能漏れは leakage of radioactivity の直訳
581:デフォルトの名無しさん
18/06/18 14:05:58.53 7nYEmGe5.net
そもそも次世代言語が次世代なうちは個人の趣味プロぐらいにしか使わんだろ
582:デフォルトの名無しさん
18/06/18 14:33:09.83 sQTrKk9Y.net
HaskellやElixirを実業務で使ってるところも
実在するわけだよな恐ろしい
583:デフォルトの名無しさん
18/06/18 14:45:17.24 UoKY4/G0.net
そのへんはむしろ枯れてるし実際ある
584:デフォルトの名無しさん
18/06/18 14:48:34.03 soq2obRK.net
まあHakellに関してはもう次世代というよりLispと似たようなポジションだということで
585:デフォルトの名無しさん
18/06/18 15:30:15.87 soq2obRK.net
ところで、またATS2に話を戻すんだけど、
日本語訳もあったしチュートリアルやってみてるんだけど
↓の再帰関数の停止性検査とやらで躓いている
URLリンク(jats-ug.metasepi.org)
特に
fun isevn{n: nat} .<2*n>. (n: int n): bool = if n = 0 then true else isodd (n-1)
and isodd{n: nat} .<2*n+1>. (n: int n): bool = not(isevn(n))
が何故.<2 * n>.と.<2 * n + 1>になるか理解できん…
.<n>.と.<n + 1>.で大丈夫だと思ったんだが…
たぶんまだ、停止性メトリクスとやらが正しく理解できていないんだろうな…
誰か詳しく解説してくれないか?
586:デフォルトの名無しさん
18/06/18 15:31:22.53 /sFO+jYl.net
>>575
ドワンゴ(失笑)とかか?wwww
587:デフォルトの名無しさん
18/06/18 15:37:03.09 /sFO+jYl.net
ドワンゴが使ってると公言した言語を使ってる会社はドワンゴレベル
気を付けろwwwww
588:デフォルトの名無しさん
18/06/18 16:10:43.68 soq2obRK.net
ドワンゴってScala以外にもSwift, Kotlin(スマホアプリ)やReact(Typescript)やRustとかも使ってるからな…
開発事例は聞いたことないけどGoの勉強会とかもやってるし…
その基準だと、このスレでよく話題に挙がる言語はほとんど全てドワンゴレベルだな
ドワンゴレベルじゃない次世代言語はDartくらいか?www
589:デフォルトの名無しさん
18/06/18 16:24:24.97 NEyGx0zg.net
ドワンゴには、C++ の標準化委員の江添亮もいるし、Rust, Elixir, HDL もやってる。
クックパッドには、RubyVM を作った、笹田耕一もいる
基本は、Ruby。
Gradle で使うGroovy も、Ruby そっくり。
Elixir もそう。
jQuery のメソッドチェーンも、Ruby っぽい
無料のRails チュートリアルをやれば、すべてのフレームワークがわかる
590:デフォルトの名無しさん
18/06/18 16:24:43.92 yVgz9/Zm.net
言語と品質には何の関係もないのを
日々実証し続けているドワンゴさん
591:デフォルトの名無しさん
18/06/18 16:29:30.09 pZ1JIWjn.net
まだRubyのチュートリアルの話してんの?
Rubyっぽい、って、第一言語がRubyだからそう見えるだけだろ。
592:デフォルトの名無しさん
18/06/18 16:40:07.48 OPxRI0Cf.net
フリーソフトがあるから品質と価格が無関係
593:デフォルトの名無しさん
18/06/18 17:22:50.97 qMNnTEHn.net
ドワンゴってエンジニアだけ見ると技術力高そうなのに
なんで成果が全部ゴミなんだろうな
594:デフォルトの名無しさん
18/06/18 17:37:58.73 NEyGx0zg.net
YouTube, AbemaTV は、広告
ニコ生は、有料
Showroom は、寄付
ビジネスモデルが異なるから、
1つのチャネルの視聴者数が1万を超えると、追い出す
乃木坂みたいに、数万人も見ると、追い出す。
広告が無いから、1万人以上が無料で見ると、電気代が払えず、赤字になる
595:デフォルトの名無しさん
18/06/18 18:02:04.30 EvkbZGBx.net
>>578
isevn.<n>.とisodd.<n+1>.だと
isevn 3 のメトリックは.<n>. = .<3>.
そこから呼ばれるisodd 2 のメトリックも.<n + 1> = .<3>.
減ってねえ!エラー!ってことじゃね
想像だけで試してないので違ってたらすまん
596:デフォルトの名無しさん
18/06/18 18:04:53.53 xdRdwSco.net
>>578
とある関数呼び出しの定義内に表れる再帰的呼び出しの
停止性マトリクスが、大元の関数呼び出しの停止性マトリクスから辞書順で下降していくことから停止性を担保しようというのが停止性マトリクスの意味。
そして停止性マトリクスの記述に表れる n は issven や isodd の引数そのものだということに注意
iseven、isodd の停止性マトリクスがそれぞれ n、n+1 だと、
iseven n の停止性マトリクス→n
iseven n の定義に出てくる isodd (n-1) の停止性マトリクス→n-1+1=n
減っていないから停止性が担保されない(NG)。
説明にあるように <n, 0> と <n,1> ならば、
iseven n の停止性マトリクス→<n,0>
iseven n の定義に出てくる isodd (n-1) の停止性マトリクス→<n-1,1> (下降している!OK)
isodd も同様に
isodd n の停止性マトリクス→<n,1>
isodd n の定義に出てくる iseven (n) の停止性マトリクス→<n,1> (下降している!OK)
そして<n,0>, <n,1> の代わりに n*2, n*2+1 を使っている(この代用が可能なことはわかるよね)。
597:デフォルトの名無しさん
18/06/18 18:08:28.85 xdRdwSco.net
>>589
>停止性マトリクスが、大元の関数呼び出しの停止性マトリクスから辞書順で下降していくことから停止性を担保しようというのが停止性マトリクスの意味。
この説明「下降していく」だと本当に再起をどんどん
実行していくみたいで間違ってるか。
とある関数呼び出しの停止性マトリクスよりも、
その関数の定義に表れる全ての再帰的呼び出しの停止性マトリクスのほうが辞書順で小さい、
というべきか。
598:デフォルトの名無しさん
18/06/18 18:09:50.53 xdRdwSco.net
>>589
>isodd も同様に
>isodd n の停止性マトリクス→<n,1>
>isodd n の定義に出てくる iseven (n) の停止性マトリクス→<n,1> (下降している!OK)
最後の行は
isodd n の定義に出てくる iseven (n) の停止性マトリクス→<n,0> (下降している!OK)
の間違いでした
599:デフォルトの名無しさん
18/06/18 18:32:21.74 NEyGx0zg.net
偶数は、2*n
奇数は、2*n+1
600:デフォルトの名無しさん
18/06/18 18:34:45.57 EvkbZGBx.net
>>592
理解してないだろw
601:デフォルトの名無しさん
18/06/18 18:51:32.37 OPxRI0Cf.net
安全装置のたぐいは損失を防ぐばかりで利益は全然ない
利益がないから理解できない人が続出
602:デフォルトの名無しさん
18/06/18 18:58:41.11 soq2obRK.net
>>589
ありがとう
冷静に計算していったら、確かにnとn+1じゃ減ってないからダメで
2*nと2*n+1だときちんと減ってるからOKってところまでは理解できた
でも、一体何を考えて<n,0>と<n,1>のタプル?のメトリクスが出てきたか全然分からない…
> そして<n,0>, <n,1> の代わりに n*2, n*2+1 を使っている(この代用が可能なことはわかるよね)。
すまない。俺はバカなんだ。分からないんで教えて下さい。
自分でも自分がどこまで分かっているのかさえよく分かっていないんだが、
たぶん、停止性メトリクスがきちんと減っているかどうかを計算する方法までは理解できたが、
きちんと減っている停止性メトリクスを導き出す方法が分かってないんだと思う
603:フ名無しさん
18/06/18 19:23:14.64 xdRdwSco.net
>>595
>すまない。俺はバカなんだ。分からないんで教えて下さい。
辞書順を保ったまま <n, 0>, <n,1> をそれぞれ 2*n, 2*n+1 で置き換えられる
3*nとか4nでもいいけど2つしかないから2nで十分
例
fun f
{n:nat} .<3*n>.
(n: int n) : bool =
if n = 0 then true else g (n-1)
and g
{n:nat} .<3*n+2>.
(n: int n) : bool = not (h (n))
and h
{n:nat} .<3*n+1>.
(n: int n) : bool = not (f (n))
604:デフォルトの名無しさん
18/06/18 19:24:20.04 EvkbZGBx.net
>>595
引数のnと、isoddとisevnの2つの関数の区別(+0, +1)を位取り(*2)して足してるだけじゃないかな……
605:デフォルトの名無しさん
18/06/18 19:33:04.83 vrc1WpPf.net
>>581
全部そうだよ
やっぱりJavaやC、Pythonが最終的に一番良いってことだな
新しいものに飛び付いてるとドワンゴになるぞ
606:デフォルトの名無しさん
18/06/18 19:52:57.33 wJzzPYpc.net
ドワンゴはc++みたいなもんだな。
とりあえず新言語(新機能)の実験台になってもらえるっていう。
607:デフォルトの名無しさん
18/06/18 20:40:04.20 bcKP+A2z.net
>>599
つまりドワンゴがスレタイ言語は
ほぼ使えないと証明してくれてるってことだな
608:デフォルトの名無しさん
18/06/18 20:46:12.17 7nYEmGe5.net
ドワンゴは本当のC++プログラマーも募集してるしな
609:デフォルトの名無しさん
18/06/18 21:40:32.50 poCVJCAd.net
やきそば焼かせてるようなクズ会社にいくのか?
610:デフォルトの名無しさん
18/06/18 21:49:26.33 c5Ieze8t.net
bio100%の戀塚もいるんだよな
いかんせん上がアホだから
611:デフォルトの名無しさん
18/06/18 21:55:35.52 soq2obRK.net
>>596
辞書順を保ったまま置き換えられるってのが何をしてるのかイマイチよく分からんが
とりあえず、2つの関数で相互再帰なら2n、3つなら3nといった感じ……なのか?
うーん…まだ勉強し始めたばかりだし、やってればそのうち分かるようになるかぁ…
あざっす。
612:デフォルトの名無しさん
18/06/18 22:18:33.96 ejyTxCd5.net
>>604
いやここで堪えて理解しておくべき。
引数から算出できて、再帰で減るものを何か考えてそれを停止性マトリクスとする。
値そのものじゃなく大小関係だけが大事だから、
m が 0 と 1 のどちらかしかなければ
<n, m> の代わりに n*2+m で ok ってこと
例
<5,0> は <4,1> より大 ⇔ 5*2+0 は 4*2+1 より大
613:デフォルトの名無しさん
18/06/18 22:30:23.80 ejyTxCd5.net
ちなみに辞書順というのは停止性メトリクスのタプルについて、
先頭の要素同士を比較、等しければ次の要素同士を比較、また等しければそのまた次の以下略…
という風に比較したときの順序関係
614:デフォルトの名無しさん
18/06/18 22:47:52.93 ejyTxCd5.net
上で散々マトリクスと誤記しているメトリクスはこの場合「(停まるまでの)距離」という意味
615:デフォルトの名無しさん
18/06/18 23:09:05.63 soq2obRK.net
>>605
なるほど。(n, 0)と
616:(n, 1)が2nと2n+1に変換できることまでは分かった。ありがたい。 でも、そもそもの話として(n, 0)と(n, 1)っていうのが 一体何を考えて導き出されたのかが分からないんだよ… チュートリアルに「isevn と isodd に (n, 0) と (n, 1) のメトリクスを与えれば、 これら2つの関数の停止性もまた検査できることは明白です。」って 書いてあるんだけど、俺にとっては全然明白じゃない… 何をどう考えたら(n, 0)と(n, 1)のメトリクスを与えようと思うんだ…? 現状、分かっているのは2nと2n+1ならメトリクスが減っているからOKってところと (n, 0)と(n, 1)のメトリクスが2nと2n+1に変換できるってところまで… 一番肝心な部分が理解できていない気がする…
617:デフォルトの名無しさん
18/06/18 23:17:38.17 Tp0/3gfg.net
なんの話か分からないけどこういう奴らが使ってる技術は使いたくない
618:デフォルトの名無しさん
18/06/19 00:28:07.36 2myyjakz.net
ATSは依存型言語の中でも奇抜な方だと思うよ
Coqとソフトウェアの基礎の方が易しいと思う
619:デフォルトの名無しさん
18/06/19 01:44:59.48 menX4d1R.net
CoqとAgdaは敬遠してるんだよね…
あの二つはプログラミング言語じゃなくて証明支援器だって聞いてるから…
オレは別にPCに証明問題を解くのを手伝ってもらいたいんじゃなくて、
従来の型システムを発展させた依存型とかを使ったより安全な
プログラミングを行うの方法が知りたいんだよって思って…
けど、学ぶ順番としてはCoqが先のほうが良かったのかな?
でも、Coqだとどうにもモチベーションが…
あと、ついでに線形型も学びたかった……
Rustの所有権・借用・ライフタイムはほぼ理解できてるんでそれほど難しくはないだろうと…
まず、依存型で躓いてるんで線形型までたどり着いていない…
んー……一度に色々やろうとし過ぎか…(´・ω・`)
620:デフォルトの名無しさん
18/06/19 02:53:39.62 8GZLihdn.net
Idris とかはどうなのよ
621:デフォルトの名無しさん
18/06/19 04:24:16.98 thfWBPV2.net
>>608
この場合呼び出しのたびに変化するものが、引数のnと「どちらの関数を呼ぶか」という
2つしかないんだから、呼び出しのたびに減る式を作ろうとしたらこれを組み合わせるしかない
後はパズルだろ
622:デフォルトの名無しさん
18/06/19 07:30:15.96 3/FXNCrL.net
全てのnについて(n, 1)>(n, 0)と2n+1>2nは同値だから当たり前だろ。
623:デフォルトの名無しさん
18/06/19 08:33:24.05 vJmt1KGh.net
わかりにくい記法は自分で自由にわかりやすい記法に変換すればわかる
Cのポインタの記法と同じ
自由に考える方が早い
偉い人にいちいち許可を求めたり質問したりすると時間がかかる
624:デフォルトの名無しさん
18/06/19 08:33:59.97 menX4d1R.net
>>613
んー…1日置いたらやっと分かったような気がする…
気がしてるだけかもだけどあとは自力でどうにか理解できそう…
まあ、新しい概念を覚えるときはどうしても時間が掛かるものだし、
あとは腑に落ちるまでサンプルコードひたすら写経したりするか…
皆ありがとう
>>610
ATSの依存型は奇抜なの?
他の依存型がある言語も似たようなことやるんじゃないの?
625:デフォルトの名無しさん
18/06/19 08:51:24.21 vJmt1KGh.net
コンパイル時のメタプログラミングはみんな奇抜
626:デフォルトの名無しさん
18/06/19 19:52:01.92 R39QGoSG.net
型を静的に解析しつつマクロみたいに評価順序を入れ替えようってのが
そもそも無理があるんだよ。
627:デフォルトの名無しさん
18/06/19 20:25:55.46 b5m1uThb.net
そもそも型に期待しすぎるのがキモい
型の役目なんてOCamlくらいでちょうどいいのに
628:デフォルトの名無しさん
18/06/19 21:54:08.10 vbOWauRQ.net
型安全のためにDRY原則すら無視してるのあるからな
629:デフォルトの名無しさん
18/06/20 01:28:01
630:.72 ID:QSlqi/vd.net
631:デフォルトの名無しさん
18/06/20 11:07:04.58 YLzmhKZ9.net
一生型書いてろ
俺はプロダクト書くからよ
632:デフォルトの名無しさん
18/06/20 11:47:35.83 CARL/ed1.net
人は型かプロダクトかどっちかしか書けないからなw
633:デフォルトの名無しさん
18/06/20 13:04:18.23 pTH4tzak.net
>>620
ジェネリクスやインターフェース正しく使ってれば
DRY原則無視しなきゃ型安全守れないこととかほぼ無いだろ
どんなコード書いてるんだよ?
634:デフォルトの名無しさん
18/06/20 21:17:56.02 vXpw0FFs.net
型って建物に例えると水準器だろ
柱がまっすぐ立ってるか見るための補助具
補助具ばっか作って家が建つのか?
635:デフォルトの名無しさん
18/06/20 21:34:34.91 kjCaqS0j.net
一生水準器使ってろ
俺は家建てるからよ
636:デフォルトの名無しさん
18/06/20 21:39:33.95 pTH4tzak.net
そうか、じゃあ動的言語で作ったプログラムって例えるなら水準器なしで建てられた家なのか…
それは欠陥住宅というもので工期が遅れてる建物よりもっと害悪だと思うんだがそれは…
637:デフォルトの名無しさん
18/06/20 21:55:16.85 nu99cs2X.net
いや単なる犬小屋欲しいだけなのに設計書に一年くらい時間かけるようなもんだ。
638:デフォルトの名無しさん
18/06/20 22:31:25.72 R/RR2gVc.net
>>628
犬小屋ってどれくらいの規模のものを指してるの?
リソース3つくらいのweb apiサーバとか?
639:デフォルトの名無しさん
18/06/20 22:35:54.20 R/RR2gVc.net
>>625
それだけじゃないよ。メンテナンスという観点でも必要。
いわば動的言語なら釘で家を建てるけど、
型付きなら、簡単に取り替えられるようにボルトで止まってる。
ちゃんとネジに印がついていて交換ミスも起こりにくい
640:デフォルトの名無しさん
18/06/20 22:37:33.02 6Ldi6ZQ0.net
例え話をするエンジニアは無能の法則
641:デフォルトの名無しさん
18/06/20 22:45:13.44 pTH4tzak.net
>>629
犬小屋なんだから日曜大工、つまり個人の趣味レベルのものでしょ
642:デフォルトの名無しさん
18/06/20 23:03:24.49 kjCaqS0j.net
型は水準器というより物差しに近い
643:デフォルトの名無しさん
18/06/21 00:46:09.92 j3Jry11G.net
オプションでも型制約無い言語なんてもうJSとRubyくらいじやね?
644:デフォルトの名無しさん
18/06/21 01:00:00.42 9yZQgWTf.net
Lua忘れるとか
645:デフォルトの名無しさん
18/06/21 01:15:00.23 Xm+RspnJ.net
c++のstd::chornoみたいな設計は行き過ぎた型安全だと思う
646:デフォルトの名無しさん
18/06/21 01:16:19.88 tnwaIVRK.net
C++は存在そのものが行き過ぎている
647:デフォルトの名無しさん
18/06/21 02:30:14.21 lOkS/ogb.net
永遠の次世代言語
648:デフォルトの名無しさん
18/06/21 03:28:39.67 CmPcltgN.net
C++はやべーよ
でも誰も逃げ出せない
649:デフォルトの名無しさん
18/06/21 07:30:10.88 6ripmtAT.net
まさに魔王
650:デフォルトの名無しさん
18/06/21 12:02:43.31 NVNRBOaD.net
逃げ出したいけど環境がっつりだから無理だわ
651:デフォルトの名無しさん
18/06/21 12:22:25.31 f5p4gdbf.net
rubyは絶対に型を書きたくないから
コメントか外部ファイルに型を書くようにするらしいぞ
652:デフォルトの名無しさん
18/06/21 12:26:56.39 Ny0HAIKC.net
0から何か作ろうって時にC++だけは選びたくない
653:デフォルトの名無しさん
18/06/21 13:31:50.47 AvdUCmrX.net
俺はアプリ屋だからコアの部分は Windows、
Android、iOS、MacOS のどれでも使える c++
UI 側を書く各言語から呼び出して使う
654:デフォルトの名無しさん
18/06/21 13:35:39.24 uYxelfTA.net
あいかわらずRubyの人たちは何がしたいのかよくわからんな
655:デフォルトの名無しさん
18/06/21 13:52:08.71 /kaFS0dg.net
C/C++の型はアドレスやサイズの計算に使う
低級言語だから型が役に立つ
高級言語がC++の真似をする必要はないんだよ
型を書かない高級言語はたくさんある
656:デフォルトの名無しさん
18/06/21 13:55:42.09 Ij19PzUL.net
コードに型を書かないと後で分からなくなるから結局コメントで型を書くことになるゴミ
657:デフォルトの名無しさん
18/06/21 13:58:07.14 D8gwnbh9.net
メソッド名とか使われ方とかコメントとかプログラマのクセとかからAIが型推論してくれるんだろう
658:デフォルトの名無しさん
18/06/21 14:00:01.02 gnPepsUQ.net
AIは確率過程だからコードみたいな根幹部分には使いたくないな
659:デフォルトの名無しさん
18/06/21 14:11:21.05 0x6Lg0t3.net
AIを使ったエラー検出は今後のトレンドになるだろうね
技術進歩に伴って緩やかに型は不要になっていくだろう
IntelliCodeの発展形としてMSがやりそう
660:デフォルトの名無しさん
18/06/21 14:33:42.30 copqf+uW.net
そのAIをC++で作らされたりしてな
661:デフォルトの名無しさん
18/06/21 14:34:54.31 /kaFS0dg.net
AIの得意分野はどっちかが必ず勝つ対戦ゲームというブルーオーシャン
レッドオーシャンに飛び込んでも勝てると思うのは確率的に間違ってる
662:デフォルトの名無しさん
18/06/21 14:46:28.87 S4IxNo+1.net
>>646
とあるオブジェクトを扱うアルゴリズムが要求するのは型じゃなく
整数っぽいものを返すsize() メソッドは実装していること、
とかそういう制約だよな
663:デフォルトの名無しさん
18/06/21 20:54:11.38 bp0U88xF.net
>>642
python2の型ヒントみたいなやり方するってことかな。まあ実行時には必要ない情報だから
それもリーズナブルな解だと思うけどね。使えるものを早く出してくれさえすれば。
664:デフォルトの名無しさん
18/06/21 21:51:19.80 6ripmtAT.net
型推論とかAIで検出とかバカほど無駄なことに計算資源使おうとするのな。
そんなカスみたいな機能に資源使うくらいならコンパイル速度上げた方がよっぽどマシ。
665:デフォルトの名無しさん
18/06/21 23:52:49.86 c3YkgC6b.net
>>655
えぇ…
AIは知らんが型推論のほうはコンパイル速度重視のGoでさえ使ってる技術だぞ
666:デフォルトの名無しさん
18/06/22 00:03:19.61 7bl9EfTW.net
単純な右から左の型推論は余計な型名解決が減る分むしろコンパイル速くなるだろ
667:デフォルトの名無しさん
18/06/22 00:15:01.47 ecfXobDJ.net
おじいちゃんは自分がよく知らないものは全部無駄に見える生き物だから…
668:デフォルトの名無しさん
18/06/22 00:18:04.51 mjvSylV1.net
>>657
単純な場合はむしろ速くなるの?それは知らんかった
ただ、どっちにしろ型推論ってそんなに計算リソースを消費するイメージないんだけど…
669:デフォルトの名無しさん
18/06/22 00:42:37.48 fxQEanUA.net
速くなる訳ねーだろ。。
URLリンク(cocopon.me)
なんでこいつらこんな簡単に騙されるの?
670:デフォルトの名無しさん
18/06/22 00:43:40.93 H0orbnfz.net
型推論の計算コストは有効範囲と言語の持ってる型システムの表現力でけっこう変わるよ
関数内でのみ有効なのと関数宣言でも使えるのだと随分違う
既存の、コーディング中に型を書くのが苦にならないような言語だと後から型推論追加しても旨味が少ないと思う
Rustはコンパイル速度を気にしてかライフタイム関係の推論が面倒だったのか知らんけど、関数内でしか型推論有効にしなかったの
671:は個人的にマイナス
672:デフォルトの名無しさん
18/06/22 00:58:36.71 ZcpNHe71.net
>>660
せめてgoでの比較持ってこいよ
673:デフォルトの名無しさん
18/06/22 01:02:01.33 mjvSylV1.net
>>660
結局コンパイラがどうやって推論してるかはソース見てみない限り分からないからな
遅くなる場合もあれば、ほとんど変わらない場合もあるだろうし、何とも言えないな…
>>661
俺は逆に関数宣言の型の情報まで推論されるのは好きじゃないな
推論するのはローカル変数だけにしてほしい
まぁ、そこら辺は好みの問題だな
674:デフォルトの名無しさん
18/06/22 01:56:16.57 fZhhlNhQ.net
>>663
関数宣言の型の情報って何よ?
675:デフォルトの名無しさん
18/06/22 08:06:59.36 UUvhOuOE.net
constは推論されないとかのことかな
676:デフォルトの名無しさん
18/06/22 10:04:29.72 HgCip2r2.net
Nim IN ACTIONの1章と8章が無料公開されてるから1章読んでみてるけどなかなかセンスいい言語だな
677:デフォルトの名無しさん
18/06/22 11:15:38.68 HgCip2r2.net
しかしスネークケースキャメルケース同一視すんのどうなんだ
識別子に暗黙で余計な解釈しないでほしい
railsの自動変換思い出して嫌な感じ
678:デフォルトの名無しさん
18/06/22 13:59:02.57 yU7k9q5t.net
NimはDの後継って感じがする
679:デフォルトの名無しさん
18/06/22 17:58:23.96 cmFjayc5.net
最近D言語は低レベルのほう寄ってってるからなあ
680:デフォルトの名無しさん
18/06/22 18:08:28.35 oC8L9s8J.net
ベクトル化を使うための4要素配列とかヤバすぎ
681:デフォルトの名無しさん
18/06/22 18:49:57.22 y18AFRdV.net
Dとは一緒にしないでいただきたい!
ってのは冗談だけどDとは違うと信じたい
アホみたいに機能消したり追加したりしてないし
682:デフォルトの名無しさん
18/06/23 03:45:17.94 U3yty0jv.net
Facebookで使ってるってのはドワンゴとはまた違った種類の怖さがある
683:デフォルトの名無しさん
18/06/23 05:57:11.77 tcOUUI9f.net
なんだんだ理由付けて勉強したくないだけでしょ
わたしはrustで先にゆきますよ
684:デフォルトの名無しさん
18/06/23 07:38:19.54 0Hl7KNt9.net
rust自体はちょこちょこ迷走やまずい部分も見られるので、本当に使い物になるのは
rustの成果を引き継ぎだか横取りだかした次の言語だと思ってる
685:デフォルトの名無しさん
18/06/23 08:08:55.39 tcOUUI9f.net
はいはい次は本気出すパターンね
686:デフォルトの名無しさん
18/06/23 08:21:35.71 xKUV9tWt.net
個人的に勉強するだけならいいと思いますよ。
他人にクソコンパイラの使用を押し付けなければね。
687:デフォルトの名無しさん
18/06/23 08:33:57.94 XcMMhDbo.net
>>674
swiftかな。swiftはにんきあるよな。俺には理解できないけど。関数型に興味を持つきっかけとnull安全な言語仕様の有効性を教えてくれた
688:デフォルトの名無しさん
18/06/23 09:33:29.90 4aGgjPWw.net
QBの契約ですら押し付けではないと擁護する人はいるから
あれより酷いことをしない限り押し付けとの指摘は当たらない
689:デフォルトの名無しさん
18/06/23 09:38:21.33 tcOUUI9f.net
押し付けがましく感じる人がいても知ったことではないよ
そういう雑魚はずっとjava8の導入を検討していればよい、個人的にね
690:デフォルトの名無しさん
18/06/23 09:44:16.67 YVqCYnTI.net
みずほのピラミッドのJavaバージョンは?
691:デフォルトの名無しさん
18/06/23 10:29:14.93 euiJmXfR.net
ふぐじま?
692:デフォルトの名無しさん
18/06/23 11:30:28.12 4aGgjPWw.net
コメントは個人の感想
moveとかborrowとか宣言するのは事実を宣言している
後者の方が押し付けがましくないと考えられていた時期もあったのだ
個人の意見を排除し事実だけを述べれば押し付けがましくならないと思ってた
693:デフォルトの名無しさん
18/06/23 13:10:25.11 TEFAVffv.net
Go:
694:マスコットきもい Rust: C++と潰し合え Swift: Apple専用の域を出ず Kotlin: Javaの代わり Nim: v1.0を出せ、cpp, m, js へのトランスパイルいるか? D: 最先端を目指した化石
695:デフォルトの名無しさん
18/06/23 13:52:47.56 4aGgjPWw.net
最近の人類がC++を使いこなしているのは想定外だった
短期的に考えると進化するのは言語やAIであり生物は進化するはずがないと思ってた
696:デフォルトの名無しさん
18/06/23 15:36:02.48 /G4sVvHU.net
>>673
出た出たRust信者特有の選民思想
697:デフォルトの名無しさん
18/06/23 16:06:32.61 qtu2DFwK.net
最先端を目指した化石か
めっちゃしっくりくるな
698:デフォルトの名無しさん
18/06/23 16:07:05.54 0Hl7KNt9.net
特有じゃないんだよなあ……
Ruby、Delphi、Haskell、Scalaその他諸々みんな罹患してた
既に治った人は生暖かい目で見てるし、看取った側の人はまたかぐらいにしか思ってない
むしろ>>685の新鮮な反応が羨ましい
699:デフォルトの名無しさん
18/06/23 16:19:09.66 tcOUUI9f.net
>>685
出た出た自己肯定のためのレッテル貼り
700:デフォルトの名無しさん
18/06/23 16:28:28.71 XcMMhDbo.net
今のPM新しい物好きでTypeScript案件でサーバサイドとクライアント側を同時開発するような人だけど、その人でもrustはきついっていうとった。
701:デフォルトの名無しさん
18/06/23 17:07:58.65 hifg8OYP.net
そんなの流行るわけない
702:デフォルトの名無しさん
18/06/23 18:14:07.85 coHxpUCl.net
選民思想批判するなら対案を出せ
仏教?どこの宗派だよ
703:デフォルトの名無しさん
18/06/23 19:19:35.97 pQrlS0bu.net
>>688
そういうとこがまさに選民思想って言ってんだが
洗脳って怖いな
704:デフォルトの名無しさん
18/06/23 19:29:19.08 tcOUUI9f.net
>>692
プログラマーとは思えないポンコツ発言だな
笑えるけど君の洗脳を解く義務はないので一人でそこにいてくれ
705:デフォルトの名無しさん
18/06/23 19:37:07.37 xKUV9tWt.net
学習しがいのある機能が盛り込まれた言語の最大の欠点て
こういうバカが大量生産されるとこだよな。
706:デフォルトの名無しさん
18/06/23 20:14:12.75 coHxpUCl.net
そんな因果関係に縛られて予想通りバカになるのは嫌だな
予想を裏切って自由になれよ
707:デフォルトの名無しさん
18/06/23 20:58:39.18 TOisXc9o.net
そういうとこやぞ
708:
18/06/23 21:03:04.54 OlLfOCSW.net
>予想を裏切って自由になれ
すばらしい!
私も従来の枠にとらわれない、思い込みから離れた、全く新しい発想というものを求めています
嫌いなこともあえてやってみて自分の反応を観察する、とか、
今までやったことのないことを、あえてやってみる、とか
いろいろ試しているのです…
民法をやっていますが、これが全く予想外におもしろいのです
709:デフォルトの名無しさん
18/06/23 21:10:14.97 xKUV9tWt.net
予想を裏切るだけならバカでもできるわけだが。
自由にやるなら個人でやれって話がまるで通じないってのはすごいね。
710:デフォルトの名無しさん
18/06/23 21:46:46.64 tcOUUI9f.net
使う気がないならなぜこのスレにいるのか分からない
勉強しなくていい理由をみんなで出し合って安心するためか
711:デフォルトの名無しさん
18/06/23 21:49:34.28 mAwaom3d.net
次世代C++を使おう
712:デフォルトの名無しさん
18/06/23 22:14:12.79 rbpQhZkO.net
てかさ、押し付けられても無視すれば良いだけの話じゃん
仕事のプロジェクトに採用されそうになったら反対すれば良いだけの話
それでも採用された場合はお前の言葉が理論的でなく説得力が無いか
お前がよっぽど社内で信用されていないかのどちらか
その場合は押し付けられたと感じること自体が筋違い
713:デフォルトの名無しさん
18/06/23 23:09:22.74 mByRjV5X.net
殴り殺して黙らせればいいだろ
拳こそ次世代言語
714:デフォルトの名無しさん
18/06/23 23:14:29.49 U3yty0jv.net
肉体言語は拒否で
715:デフォルトの名無しさん
18/06/23 23:22:30.98 QEsd/0ZO.net
>>667
なんだそりゃ。理由でもあるのか
716:デフォルトの名無しさん
18/06/23 23:34:31.07 wpGrewH2.net
>>701
たしかに
717:デフォルトの名無しさん
18/06/24 01:44:09.68 E9ZuAUPV.net
swiftはまじでiOS以外の活躍場所増やしてほしい。それから本番
718:デフォルトの名無しさん
18/06/24 04:03:48.57 x8yGJsva.net
Objctive-CってiOS/Mac以外の現場あったの?
719:デフォルトの名無しさん
18/06/24 07:43:19.88 yrJGTcca.net
>>701
そうだよね
720:デフォルトの名無しさん
18/06/24 13:29:15.56 tiUGZk0g.net
swiftってゴチャゴチャ機能詰め込んだモダンなC++って印象しかないけど良い言語なのか
721:デフォルトの名無しさん
18/06/24 13:41:30.12 Wl9zttLU.net
全然c++要素ないだろ…
722:デフォルトの名無しさん
18/06/24 13:44:51.66 ytwtOhSm.net
iPadのアラートにキャンセルボタンでないんか?
723:デフォルトの名無しさん
18/06/24 13:50:51.28 VwV4wfVR.net
IntelliJがあるKotlinのほうがSwiftより強い
724:デフォルトの名無しさん
18/06/24 14:16:19.36 aS0z5WOn.net
なんでチェック例外なくしてしもうたん
みんなナチュラルに例外無視して例外が例外した時例外的な挙動になるじゃん
馬鹿?
725:デフォルトの名無しさん
18/06/24 14:20:18.05 4gJIHbwS.net
>>713
URLリンク(www.artima.com)
アンダース神の御言葉
あと当時にはなかった事情として、高階関数と相性最悪というのもある
726:デフォルトの名無しさん
18/06/24 14:22:38.49 aS0z5WOn.net
>>714
は?日本語でやりなおせこのカス
しょうもない神とかいってマウント取ってチンポおっ立ててるゴミは死なす
727:デフォルトの名無しさん
18/06/24 14:22:38.79 aS0z5WOn.net
>>714
は?日本語でやりなおせこのカス
しょうもない神とかいってマウント取ってチンポおっ立ててるゴミは死なす
728:デフォルトの名無しさん
18/06/24 14:26:16.08 afUW8/ml.net
> If the new version of foo is going to throw a new exception that clients should think about handling, isn't their code broken just by the fact that they didn't expect that exception when they wrote the code?
> Anders Hejlsberg: No, because in a lot of cases, people don't care. They're not going to handle any of these exceptions.
これを堂々と言えるのがヘルスバーグの凄さだよな
言語厨はこういうくだらない問題に固執して、その結果、使えないものを生み出す
729:デフォルトの名無しさん
18/06/24 15:08:00.23 zgy+o43M.net
1つの誤りを減らすために倍の工数をかけるのは意味がある
100万行に1つエラーがあるとき1つ減ったら品質2倍
730:デフォルトの名無しさん
18/06/24 15:23:54.41 I6qT+7Vz.net
チェック例外はステータスコードをリターンして呼び出し側に毎回チェックを要求するようなもの
例外を開発した根本的な理由を否定するおかしな機能だ
731:デフォルトの名無しさん
18/06/24 15:34:52.16 W9MJDxOG.net
>>715
英語も読めない奴がなんでこのスレにおるん?
732:デフォルトの名無しさん
18/06/24 15:37:10.47 zUb4/N1b.net
>>715
URLリンク(translate.google.co.jp)
733:デフォルトの名無しさん
18/06/24 15:57:11.31 zgy+o43M.net
>>719
ステータスコードとか黙殺されるじゃないか
734:デフォルトの名無しさん
18/06/24 16:08:53.37 NdKqGL5r.net
exitがあるならexitを使え
exitとは違うと言いたいだけのためにcatchするのはや�
735:゚ろ
736:デフォルトの名無しさん
18/06/24 17:10:33.48 5X6JCb05.net
>>701
まあ一理あるよ。
実際転職してこういうバカがいない環境で作業するようになったが
めちゃくちゃ楽になったというのはある。
バカと議論するくらいなら自分の環境を変える方が有効なのは事実だ。
737:デフォルトの名無しさん
18/06/24 18:21:51.58 7besbNmD.net
そういえば、Swiftってチェック例外しか無いけど
StackOverflowExceptionみたいなどうしようもないタイプのエラーはどう扱ってるんだ?
738:デフォルトの名無しさん
18/06/24 18:37:51.28 zUb4/N1b.net
いさぎよ死
739:デフォルトの名無しさん
18/06/24 19:10:21.85 rCnjXQm/.net
Swiftのthrowsは投げる例外の種類を特定できない
規模が大きくなればほぼ全てのメソッドにthrowsが付くので何の意味もなくなる
iOSアプリ専用言語ってことでスケーラビリティを捨てて簡潔さを取ったんだよ
全く検査例外の問題を解決していない
740:デフォルトの名無しさん
18/06/24 19:20:57.72 yrJGTcca.net
議論しなくて楽といいながら反論しないと我慢できないあたり、敗北に耐えられなくなったんだろうなあ
741:デフォルトの名無しさん
18/06/24 20:13:53.05 LdM/sNf2.net
はあ……はぁ…… 敗北者?
742:デフォルトの名無しさん
18/06/24 21:04:40.84 +NknEUst.net
Jカス死ね
外に持ち出すな
743:デフォルトの名無しさん
18/06/24 21:13:15.40 IMfFDE+Z.net
Goの例外機構は素晴らしい
744:デフォルトの名無しさん
18/06/24 22:53:08.23 aS0z5WOn.net
>>730
おいよせのるな立ち止まるな戻れ
745:デフォルトの名無しさん
18/06/24 23:42:03.20 454A8npo.net
Goに例外機構あったの??
746:デフォルトの名無しさん
18/06/24 23:54:12.95 n0+oKw/B.net
パニック パニック パニック みんなが あわててる
747:デフォルトの名無しさん
18/06/25 01:21:07.81 sauGlQNA.net
Nim vs Pony
URLリンク(www.slant.co)
Nimの圧勝www
748:デフォルトの名無しさん
18/06/25 01:43:43.51 MLyw+FoY.net
マイナーvsマイナーで圧勝とは
749:デフォルトの名無しさん
18/06/25 02:28:15.40 Emoxa88w.net
Java8基準で考えていく
750:デフォルトの名無しさん
18/06/25 02:39:47.18 sauGlQNA.net
日本じゃ全然話題にならないけどEveのトピックはいつも大論争になる。
果たしてEveは革新的なプロジェクトなのか、誤って定義した問題を解決しようとしているに過ぎないのか。
URLリンク(news.ycombinator.com)
URLリンク(news.ycombinator.com)
URLリンク(news.ycombinator.com)
URLリンク(news.ycombinator.com)
751:デフォルトの名無しさん
18/06/25 03:16:00.10 /4lQWXmM.net
Egisonのパターンマッチちょっと感動した
752:デフォルトの名無しさん
18/06/25 03:17:17.70 44m9rNA8.net
記号なしの数学はより分かりやすく役に立つか
753:デフォルトの名無しさん
18/06/25 09:16:08.84 5QtoeHUB.net
パトロン見つからなくてプロジェクト終了してたんだな。残念
754:デフォルトの名無しさん
18/06/25 14:24:03.82 KTJIIKxw.net
>>170
は?vscodeもtsも不安しかねえんだけど
シェア一強になるまでは低姿勢、なった瞬間に手のひら返し、が今までのMSのテンプレ
今回もまったく芸のないテンプレでむしろ呆れてるところ
お前みたいなバカが信者かわからんがMS持ち上げる阿呆が出てくるからタチ悪い
755:デフォルトの名無しさん
18/06/25 14:27:50.78 NzmJfW7/.net
マイナーvsマイナーだと、設計そのものの良し悪しよりも
どれだけ労力をかけて作り込まれているかの方が影響でかいからなあ……
作ってる側が「いやそこの最適化は後回し」とか思ってるところを測ってもしょうがないし
(いやメジャーvsメジャーでもそういうとこあるけど)
756:デフォルトの名無しさん
18/06/25 15:24:30.75 3bOE7bXX.net
一生疑って暮らすのは楽しいのかな
757:ぁ
758:デフォルトの名無しさん
18/06/25 15:50:06.67 d4UYbnp8.net
「疑う」の反対は「割る」
割れば楽しいのはわかった上で敢えて疑う方を選ぶんだろう
759:デフォルトの名無しさん
18/06/25 16:43:18.37 1uudit/q.net
>>738
なんかSmalltalk風味があるな・・・
760:デフォルトの名無しさん
18/06/25 19:42:46.10 Vbt8BrVm.net
MSのやり方について講釈垂れる前に
ライセンス見ろよとしか(VSCode,vscode)
761:デフォルトの名無しさん
18/06/25 23:28:09.79 RDIsdPp/.net
>>742
陰謀論者は生きづらそうで大変ですね。
もしMSが手のひら返したら、forkするだけですけど?
762:デフォルトの名無しさん
18/06/25 23:37:34.43 XbrJPmKw.net
forkするだけ(藁)
強がっちゃってまあ
いいのか?フォフォフォカヌポォしますぞ!!!(憤怒)←草www
763:デフォルトの名無しさん
18/06/25 23:47:42.02 d4UYbnp8.net
forkするより製品版を単純にコピーするだけの方が早い
MSの影響で民度が下がる
MSと無関係でいる方が安全
764:デフォルトの名無しさん
18/06/26 00:04:43.71 Si7josaM.net
永遠にvimかemacsしか使わなければよい
765:デフォルトの名無しさん
18/06/26 00:07:22.28 RrNymGzT.net
数年前の意識高い系達が「Web開発のスピードにIDEなど邪魔(キリッ」とか言ってたのが嘘みたいだよな
結局のところ彼等は電気を知らない原始人だったのだ
766:デフォルトの名無しさん
18/06/26 00:09:45.57 5qApnOMl.net
火に怯えてた猿、の間違いだろw
767:デフォルトの名無しさん
18/06/26 00:10:17.87 PwoRxl17.net
Vimは操作性や立ち上がりの速さが優れている
Guiのエディタはプラグイン導入の楽さが優れている
Emacsは間くらい
768:デフォルトの名無しさん
18/06/26 01:10:33.16 OhefK1bS.net
>>742
つーか誰もツッコんでないんだけど、なんでこんな遅レスなんだっていう
769:デフォルトの名無しさん
18/06/26 02:31:41.82 z7QfCwwb.net
>>742
不安を感じないものを上げてみて
770:デフォルトの名無しさん
18/06/26 07:48:27.74 8nfGtP67.net
アメリカ人「銃があれば原始人を倒せるのに」
771:デフォルトの名無しさん
18/06/26 10:23:19.59 /82hZ4jz.net
>>756
Gitlabは少なくとも信頼できる
Azureで動いてるとか言ってる奴いるけどもうやめるって話出てる
エディタはEmacsで十分だし、babelあればES2016でもまともに書けるからTSは不要
772:デフォルトの名無しさん
18/06/26 10:30:34.11 Uq9cj0Jx.net
>>758
DB消すようなとこが信頼できる?
773:デフォルトの名無しさん
18/06/26 10:39:38.33 /82hZ4jz.net
>>759
消したあとの対応は信頼できる
MSなら消しても揉み消してた
774:デフォルトの名無しさん
18/06/26 10:43:02.43 jiePcum7.net
>>760
MSそんな事したことあったっけ?
ただの妄想?
775:デフォルトの名無しさん
18/06/26 11:38:55.58 8nfGtP67.net
疑問を持つ人はいっぱいいるが疑問を解決する人は少ないのが現実で
すぐに解決すると思うのは非現実的
776:デフォルトの名無しさん
18/06/26 17:29:52.82 iZChSW1/.net
年食うと一度学んだ思考回路は変えられないんだろうな
多分死ぬまでMSは邪悪でEmacsは最高のエディタなんだろう
777:デフォルトの名無しさん
18/06/26 18:29:07.51 SLOKSalZ.net
>>677
URLリンク(benchmarksgame-team.pages.debian.net)
Swiftは遅い
778:デフォルトの名無しさん
18/06/26 19:30:48.24 Si7josaM.net
Goより速いじゃん
779:デフォルトの名無しさん
18/06/26 19:55:40.04 HsrbbpJS.net
>>763
それも偏った思考回路だな
780:デフォルトの名無しさん
18/06/26 19:56:14.90 SLOKSalZ.net
あとSwiftでパターンマッチ使うときさ「case let」の「let」ってなんの意味有るの?
781:そもそも「case」自体いらないよね。 Rustみたいに簡潔な構文にしない意味がわからん。
782:デフォルトの名無しさん
18/06/26 20:18:13.51 ouGSlrDx.net
簡潔って記号だらけにしろってこと?
perlでも使ってれば
783:デフォルトの名無しさん
18/06/26 20:22:26.08 wzcThIhT.net
Rustの構文が簡潔……??
784:デフォルトの名無しさん
18/06/26 20:23:51.43 SLOKSalZ.net
Scalaも構文ダメだけど、Dottyでかなり改善されてるみたいだね
URLリンク(dotty.epfl.ch)
785:デフォルトの名無しさん
18/06/26 20:32:08.64 SLOKSalZ.net
>>768
>>769
冗長な構文にするなってこと。
```Rust
match number {
1 => "one",
2 => "two",
_ => "else",
}
```
```swift
switch number {
case 1: return "one"
case 2: return "two"
default: return "else"
}
```
786:デフォルトの名無しさん
18/06/26 20:36:27.71 Rm57MuZK.net
msが嫌いならflow使っとけばいいよ。
俺はTypeScriptで行く
787:デフォルトの名無しさん
18/06/26 20:37:59.55 Rm57MuZK.net
>>771
rustをそんなに押すなら、
毎日ちょっとずつ使い方教えていけよ。
面白い内容ならそのまま覚えるから
788:デフォルトの名無しさん
18/06/26 20:40:42.88 wjruZlWa.net
>>767
case varがあるからでは
789:デフォルトの名無しさん
18/06/26 21:03:22.89 1/94qv1z.net
>>770
dottyは流石に見苦しいわ
今更互換性ブチ壊して誰がわざわざScalaなんか使い続けるんだよ
Lightbendは一度プラットフォーム主導者の味を覚えてしまってもう後に引けなくなってるんだろうな
790:デフォルトの名無しさん
18/06/26 21:08:47.59 SIV9Ebow.net
元が冗長だと、機能追加したときの新構文(大抵元と区別のために冗長になる)が
あまり違和感なくなるというメリット?もある
C++とか酷いだろ。rustも多分20年ぐらいしたら酷くなる
791:デフォルトの名無しさん
18/06/26 21:18:39.20 SLOKSalZ.net
>>774
Rust: URLリンク(play.rust-lang.org)
Swift: URLリンク(ideone.com)
この場合Rustのようにlet書く必要ないと思うんだけど?
792:デフォルトの名無しさん
18/06/26 21:33:59.71 uCVrG76/.net
>>776
Rustが20年も残ってるとか信者かよ
793:デフォルトの名無しさん
18/06/26 21:38:20.73 uCVrG76/.net
>>763
いつMSが邪悪じゃなくなったんだよ
エディタについてはVimとEmacs以上のものがいまだにないだけ
794:デフォルトの名無しさん
18/06/26 21:42:01.06 z7QfCwwb.net
>>779
老害おつ
795:デフォルトの名無しさん
18/06/26 21:43:00.71 SIV9Ebow.net
>>778
ObjectPascalは30年経ってるが、元が冗長と言われまくってたPascalだったおかげで
魔改造されまくった今でもあんまり浮いた構文は無いぞ
初期Macで採用されてたのは別格としても、その後は大したプロダクトもないDelphiぐらいでしか残ってないのに
一応生き残ってるんだから、FirefoxのあるRustも同じぐらいは残るだろ多分
796:デフォルトの名無しさん
18/06/26 21:46:10.71 uCVrG76/.net
>>780
どっちかっていうと、若者がMSの暴虐の歴史を学んでないから
今現在進んでる暴虐が暴虐と分からないだけだぞ
797:デフォルトの名無しさん
18/06/26 21:49:11.80 uCVrG76/.net
>>781
火狐に使われてるから残るとか
火狐の世界シェア見てから言おうぜ……
Rustごと自殺して消えるって自白したようなもん
798:デフォルトの名無しさん
18/06/26 21:49:29.84 1/94qv1z.net
完全に半島人
799:デフォルトの名無しさん
18/06/26 21:49:47.34 jiePcum7.net
>>777
だからletとvarがあるんだって
let: URLリンク(ideone.com)
var: URLリンク(ideone.com)
800:デフォルトの名無しさん
18/06/26 21:50:20.36 z7QfCwwb.net
>>782
具
801:体的に
802:デフォルトの名無しさん
18/06/26 21:50:49.04 K3KwuDCb.net
Delphiで残れたのなら火狐で残れるだろ
803:デフォルトの名無しさん
18/06/26 21:54:24.01 1lcgGYQy.net
この爺さんはこのスレに何しにきとるんだ
特養じゃないっつの
804:デフォルトの名無しさん
18/06/26 21:56:05.20 SIV9Ebow.net
>>787が書いてくれたが
俺も、どっちも細々としたもんだがFirefoxのほうがDelphi(製アプリ)よりはまだマシだろう、というつもりだった
その上で20年後の変更されまくったrustはDelphiやswiftより汚くなってそう、という予想
805:デフォルトの名無しさん
18/06/26 22:07:57.87 TI86xS9J.net
すでに汚いしな。
806:デフォルトの名無しさん
18/06/26 22:12:37.76 SLOKSalZ.net
>>785
varがあるのはわかるけど、そこでvarを使う場面てあるのかね?
URLリンク(ideone.com)
```swift
case let .B(n):
let t = n+1
return String(t)
```
だって変わらんし
807:デフォルトの名無しさん
18/06/26 22:24:29.16 SLOKSalZ.net
>>785
それにvarのときだけつければ良くないかね,Rustだと「mut」つけるだけだけど
URLリンク(play.rust-lang.org)
```rust
AB::B(mut n) => {
n+=1;
n.to_string().into()
}
```
808:デフォルトの名無しさん
18/06/26 22:33:54.59 wjruZlWa.net
>>791
変数束縛にletとvarがある言語において、switchのときだけ変数束縛を特別扱いしてletやvarを省略できるのは一貫性が無いという考え方もある
809:デフォルトの名無しさん
18/06/26 22:39:59.15 wjruZlWa.net
それに短ければ良いなら、rustのlet mulよりswiftのvarの方が短い
パターンマッチより変数宣言方が良く出て来るしね
810:デフォルトの名無しさん
18/06/26 22:47:02.38 b30is1tn.net
20年後に汚くなるってのはみんなわりと納得するんじゃね?
C++もJavaも、時間経過とともにきっちり汚くなった
言語仕様こねくり回すのが仕事の人が存在するからしゃーないっちゃあしゃーない
811:デフォルトの名無しさん
18/06/26 22:48:50.88 cumK515O.net
難しい・易しいではなく汚い・美しいという見方をするのはなんでだろう
数学を諦めた感が漂ってる
812:デフォルトの名無しさん
18/06/26 22:49:48.96 SLOKSalZ.net
>>793
そういう見方もあるけどね
でも
```
case let .B(x): return String(n)
```
と
```
case .B(let x): return String(n)
```
の違いってなんなのかね、違いがないなら「let」省略できたほうがいいように思うが
813:デフォルトの名無しさん
18/06/26 22:51:21.79 SLOKSalZ.net
>>797
訂正: xじゃなくてn
814:デフォルトの名無しさん
18/06/26 22:57:45.92 SLOKSalZ.net
>>794
短いことがいいんじゃないよ、理由なく冗長な構文がだめなだけ。
Rustはわざと「var」とかじゃなく「let mut」にしている理由は、通常イミュータブルを使うようにするため。
ミュータブルの構文が長いことでプログラマがイミュータブルをより一般的に使うよう促す効果がある。
815:デフォルトの名無しさん
18/06/26 23:00:40.71 HsrbbpJS.net
可読性の高い綺麗なPerlコードを書けるものだけが石を投げなさい
816:デフォルトの名無しさん
18/06/26 23:12:38.14 SIV9Ebow.net
>>799みたいなのは設計当初は綺麗なんだけど
後から、例えばD言語のconst/immutableみたいな選択肢を追加してしまうと罠に化けそうじゃない?(妄想だけど)
その点元が冗長ならある程度耐性がある、という話。後から省略可能にする方はできるしな
817:デフォルトの名無しさん
18/06/26 23:29:44.42 SLOKSalZ.net
>>801
Dは全然知らないけど、調べたらデフォルトがミュータブルで、immutableをつけるとイミュータブルになるのか。
```
int x = 3; // ミュータブル
immutable int x = 3; // イミュータブル
auto s = "hello"; // イミュータブル
```
これはひどいな
818:デフォルトの名無しさん
18/06/26 23:32:04.35 SIV9Ebow.net
>>802
そこはまあしょうがないとして、イミュータブルにも種類があるという点
819:に注目してくれ
820:デフォルトの名無しさん
18/06/26 23:40:45.19 cumK515O.net
コンパイル時に値がわかるのが定数
実行時に初期化するがその後は変更しないのがimmutableかな
821:デフォルトの名無しさん
18/06/26 23:56:28.51 SIV9Ebow.net
加えて、現在のスコープからは変更不可能だが実体はミュータブルかもしれないのがconst
更にそれぞれに推移のON/OFFがある
何も書かないのがイミュータブルだとその内の1つを適当に使ってるということで
選択肢が増えたときにどれか1つが不自然に短く書けてたことになるし
現状を突き詰め直したときにコンテキスト毎に別のだったなんてことになると目も当てられない
822:デフォルトの名無しさん
18/06/27 00:01:32.20 3Z0mJH5D.net
やっぱり言語仕様は頻繁に変えるべきということだな!w
823:デフォルトの名無しさん
18/06/27 00:50:40.19 jdISqR1B.net
>>802
ゲェジかな
ワイの方がよっぽどいい設計できるわ
この作者はワイのケツ穴でも舐めてた方が幾分有益な人生になったんじゃないかw
824:デフォルトの名無しさん
18/06/27 00:59:47.78 CkpNpuYk.net
>>805
GCが必須ではない言語の場合、ミュータブルならばメモリ解放もできる
現在のスコープからは変更不可能だが実体はメモリ解放するかも
というのは非常にまずい
現在のスコープから変更不可能ならば実体も変更不可能にしたい
825:デフォルトの名無しさん
18/06/27 01:19:45.86 9jxZxPuA.net
>>808
それだとイミュータブルなオブジェクトを貰って何かする関数に
ミュータブルなオブジェクトを渡せなくならない?
そうすると print とか toString とか hash とか compare とかありとあらゆるものが
immutable / mutable 2種類必要になる
引数に2つオブジェクトがあると4種
3つなら8種
826:デフォルトの名無しさん
18/06/27 20:24:28.42 GckfUNYK.net
ただの再代入不可な変数をイミュータブルって言い始めたのって何の言語からなの
827:デフォルトの名無しさん
18/06/27 21:06:16.07 7rLtDwhR.net
>>810
たぶん英語だと思う
828:デフォルトの名無しさん
18/06/28 08:21:12.64 1UW06GNd.net
>>795
pythonなんかも細かいところはど汚いわけだがあんまりそういう汚いところ
触らんでも仕事になるって違いはある。
てかシンタックスなんててきとうにチェックでもそんな問題にならんよ。
self書かされることなんて文法で規制されてるわけでもないが問題になることなんてない。
829:デフォルトの名無しさん
18/06/29 09:12:05.44 iOzvNZgV.net
>>810
変更可、不可という概念は別に変数に限った話じゃない
830:デフォルトの名無しさん
18/06/29 09:23:47.61 XwuS30Hh.net
Pythonの型アノテーション試してるけど正直苦痛
TypeScriptを使ってるときには全く感じなかった無駄なもの書かされてる感がすごい
というかTypeScriptの統合が完璧すぎるんだな
型書くことはノイズになるどころかコードをむしろ美しくするとすら思えるもんな
831:デフォルトの名無しさん
18/06/29 10:57:44.57 0VaRYdhC.net
少しでも欲を出せばそうなる
完璧な無欲か完璧な満足かの1bitしかない
HaskellやRustのようになるまで止まらないぞ
832:デフォルトの名無しさん
18/06/29 11:15:41.22 tgpXEKjE.net
>>814
Python 3.6の変数アノテーションはTypeScriptと大して変わらないのでは?
以前のコメント形式は糞だったけど
833:デフォルトの名無しさん
18/06/29 13:13:42.11 8rEU0m4z.net
>>814
全部の変数にアノテーション付けようとしてる?
基本、関数・メソッドの入出力だけでいいぞ
残りは大体推測してくれる
834:デフォルトの名無しさん
18/06/29 13:43:06.77 HOtQS3nQ.net
>>817
ライブラリなどの既存メソッドの戻り値はほとんど型なしだから結局オレオレ型宣言を左辺の変数に付けて回
835:ることになる
836:デフォルトの名無しさん
18/06/29 15:55:24.38 546QQsBD.net
>>818
あー、過渡期だからそれはあるかもね
対策としては、他モジュールを呼び出すところはなるべく集める、いきなり完璧を目指さないぐらいか
837:デフォルトの名無しさん
18/06/29 20:05:29.68 SWySBfmj.net
そんなに型に気を使って消耗する位ならもう生js使おう
適当にラッパーかけとけラッパー
838:デフォルトの名無しさん
18/06/29 21:06:52.59 M/T+ZgVo.net
>>820
TypeScriptユーザーがシコシコ型定義ファイル作ってるおかげで、vscodeでjsでも補完きくんやで。感謝せーや
839:デフォルトの名無しさん
18/06/29 21:09:19.97 0KEVr9Fm.net
せめて同梱の標準ライブラリくらいは網羅しておいてほしいよね。
840:デフォルトの名無しさん
18/06/29 21:11:52.89 M/T+ZgVo.net
>>814
typeScriptみたく型定義ファイルの共有する仕組み無いの?
いちいち書くのはしんどいな。
841:デフォルトの名無しさん
18/06/29 21:39:48.60 0VaRYdhC.net
>>823
しんどいのか
その作業がないということはライブラリの作者は楽をしている
だからライブラリが増やすのも楽
そういう仕組みなんだろう
842:デフォルトの名無しさん
18/06/29 22:21:57.95 5dIySMmw.net
>>824
TypeScriptの場合は型定義を提供することでTypeScriptユーザーに使ってもらいやすくなり、
ユーザーの増加がライブラリ製作者にとって一手間かけるモチベーションになる
Pythonの場合は型アノテーションを付けたらPython3.5以上でしか使えなくなるのでユーザーは確実に減る
結果、誰も対応しない
根本的に破綻してるんだよ
843:デフォルトの名無しさん
18/06/29 22:35:49.90 0VaRYdhC.net
>>825
破綻してるのはお前のマウンティングだよ
マウントが酷いのはHaskellで、TypeScriptは無関係みたいなイメージが根本的に壊れた
844:デフォルトの名無しさん
18/06/29 22:39:04.05 Yl8lnP6m.net
そんなんでイメージ変わるのかよ…
845:デフォルトの名無しさん
18/06/29 23:18:51.02 ifNvOhNj.net
おれ的にはこのまま型定義ファイルがすべてのライブラリに標準装備されて緩やかにjsがts化していくことを希望したい。
最初から型定義がライブラリに入っていること多くなってきたよな、
846:デフォルトの名無しさん
18/06/29 23:54:19.04 uRtJ4/dJ.net
>>828
それには同意
847:デフォルトの名無しさん
18/06/30 02:42:20.84 eHfkv0CB.net
このスレに来て初めてマウンティングって言葉を知ったわ。
848:デフォルトの名無しさん
18/06/30 03:36:46.79 +abKhVkF.net
>>823
あるよ。
typeshedてのがそれ
>>825
関数の引数、返値なら3.0から書けるし、コメント使うか別ファイルに書くやり方なら2.7にも対応可能ですが
849:デフォルトの名無しさん
18/06/30 08:02:10.37 tr0WXiW5.net
Haxe では型定義ファイルがあるから、型推論も入力補完もできる
850:デフォルトの名無しさん
18/06/30 09:44:21.50 4h701pQF.net
通常ならライブラリ本体丸ごと読んで型を調べるべきだ
本体に型がないなら別ファイルに書く
851:デフォルトの名無しさん
18/06/30 12:26:26.59 aZHCYAl9.net
>>831
なんだあるんだ。なら型付言語として使われるのも時間の問題だな。
rubyにもあるみたいだし、
ライブラリのインターフェースだけでも型付き当たり前の世界が来そうだね
852:デフォルトの名無しさん
18/06/30 14:15:03.20 BB0BPsjY.net
まーたruby信者のそ、そんなのる、るびぃでもできるし!か。呆れ
なんでもかんでも深く考えず流行りをそうやって後付けで増築してって奇形極まってるよね。二度と使わないよ。
853:デフォルトの名無しさん
18/06/30 15:58:28.61 9HearrjU.net
rubyの違法建築感は否定しない
が、なんかまとめ臭い書き方だなおい
5chエアプか?
854:デフォルトの名無しさん
18/06/30 16:41:24.65 oxrLiD+S.net
るびぃ
855:信者、Proc.new、ラムダ、ブロックにおけるreturn、break、nextの挙動の違いをまとめようとした模様 https://qiita.com/jnchito/items/83410c0cda446efea582 結果、ややこしすぎるためコーディングを工夫してreturnやbreakの使用を避けましょうというなんじゃそりゃな結論www 何か理由があってわざわざ挙動を変えたんだろうが(まさか行き当たりばったりってことはないよね笑)ややこしすぎで使用自体を避けられてちゃ本末転倒だよなwww
856:デフォルトの名無しさん
18/06/30 17:39:57.19 RHrrdh8p.net
>>836
その人はrustがコンパイルできないおじさんだからほっときなさい
857:デフォルトの名無しさん
18/06/30 18:00:17.99 Q/uEsP1n.net
rust
ruby
似てないこともないな
858:デフォルトの名無しさん
18/06/30 18:59:53.28 +abKhVkF.net
>>834,836
とはいえ、ruby にまともに使える型チェックの実装があるのかには興味あるな。
まえ調べた感じだと、教祖の型チェック周りの発言はフワッフワだし、実装してみたい個人が互換性のない「オレオレ型チェック」を作っては破棄してる感じで、万人が使えるものは何一つないようなんだが。
859:デフォルトの名無しさん
18/06/30 19:02:48.17 6fEIEQu0.net
どうせ
if type(...) != my_class:
とかのシュガーだろ。そんなもんに目くじら立てても意味あるのかね。
860:デフォルトの名無しさん
18/06/30 19:33:21.11 CMs/fWc6.net
Rubyはオモチャだから型付けなんて要りません
それより散らかったオモチャを片付けなさい
861:デフォルトの名無しさん
18/06/30 20:38:08.56 4h701pQF.net
自分のために違法建築したとは考えにくい
ユーザーを忖度して違法建築なら利己的ではないからOKという風潮があったんじゃないか
会ったこともないユーザーをモチベーションにするのはやめてほしい
862:デフォルトの名無しさん
18/06/30 23:16:50.81 tr0WXiW5.net
>>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
863:デフォルトの名無しさん
18/06/30 23:39:42.18 xV+Shhkx.net
>Ruby のProc, block はクロージャだから、クロージャを囲む関数から戻る。
クロージャ「だから」、クロージャを囲む関数から戻る??
まるでクロージャだったら当然の挙動と言わんばかりの書き方だけど、クロージャってそんなんだっけ?
864:デフォルトの名無しさん
18/07/01 00:39:17.02 tX8JlSDC.net
そんなものちゃんと読んでる>>845に感心したw
ネットにはゴミが多いね
865:デフォルトの名無しさん
18/07/01 01:54:08.61 5prQoZWD.net
>>845
ヒント:Smalltalk
866:844
18/07/01 02:00:27.83 YZ+qvhoO.net
クロージャは、クロージャの外側の環境をつかんでいる。
つまり、クロージャを囲む関数内の変数をつかんでいる
だから、クロージャ内でreturn すれば、外側の関数も抜けて、
関数内の変数なども、解放した方が良いと考えた
Groovy の挙動とは違うかも
867:デフォルトの名無しさん
18/07/01 02:11:27.56 FQlsc9Xo.net
>>848
return だけだったら納得できるんだが、next や break の扱いがぐちゃぐちゃなのはどう説明するの?
868:デフォルトの名無しさん
18/07/01 02:52:24.35 QlwNZjji.net
>>847
関数型でもないウンコ言語がクロージャの話に入ってくんな
何の参考にもならんわ
869:デフォルトの名無しさん
18/07/01 03:04:39.74 3SrV2o5x.net
>>837
> まさか行き当たりばったりってことはないよね笑
その、まさかだぞ。
楽しくプログラミング()した結果が仕様だ文句あるか!w
870:844
18/07/01 08:32:31.95 YZ+qvhoO.net
クロージャ(block
871:)内のbreak は、クロージャを抜けるだけで、外側の関数は抜けない。 関数の最後まで実行される クロージャ内のnext は、次の繰り返しに進むだけで、クロージャも抜けない。 クロージャの最後まで実行される def f num = 0 (0..5).each do |i| num = i break if i == 3 end puts num end f() #=> 3
872:デフォルトの名無しさん
18/07/01 08:58:20.58 mO0FHij0.net
すみませんがゴミの話は当該スレでお願いします
873:デフォルトの名無しさん
18/07/01 09:01:20.31 TobyyIDd.net
これ他の言語にも影響あるだろ
continueはバグの原因になるとか、gotoの方がマシとか言われる
874:デフォルトの名無しさん
18/07/01 09:18:30.80 5prQoZWD.net
>>850
えー?closureが関数型特有な概念だと思ってるわけー?
面白いね、それ。本当は純粋関数型ではclosureはさほど重要ではないのだけど。
どうしてclosureが関数型固有な概念だと思ったのか、説明してごらん?
875:デフォルトの名無しさん
18/07/01 09:22:52.78 TobyyIDd.net
>>855
おまえが自分で説明しないで人に説明させようとするからだよ
もし関数型の人が説明したら関数型の概念になるに決まってるだろ
876:デフォルトの名無しさん
18/07/01 09:23:49.76 FQlsc9Xo.net
>>852
あなたが closure だからと主張する、block は 952の挙動だが Proc では break は例外吐くらしいけど何で?
# 言っちゃ悪いが、closure は定義した時点での環境を基準に動作が普通だと思うんで、
# ループ外で定義されているならば next/break は一律例外吐くで無いと一貫性がないようにしか見えん。
877:デフォルトの名無しさん
18/07/01 09:24:49.31 FQlsc9Xo.net
>>857
すまん、「block は >>852の挙動」だな。
878:デフォルトの名無しさん
18/07/01 09:25:25.69 89p34iy1.net
このbreakとnextは並列コレクションで困る気はする
879:デフォルトの名無しさん
18/07/01 10:22:00.59 5prQoZWD.net
>>856
へー、技術のベースになる概念が、関数型の人が説明したら別物になるのかー
おもしろいねークスクス
880:デフォルトの名無しさん
18/07/01 10:23:24.47 5prQoZWD.net
>>856
で、関数型の人って誰?ばか?
881:デフォルトの名無しさん
18/07/01 10:45:16.40 QlwNZjji.net
Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判するくせに
他の言語より後に実装したclosureについては独自仕様でも問題ない、技術ベースで語れっておかしくね?
ダブスタも甚だしいだろ
882:デフォルトの名無しさん
18/07/01 10:48:49.50 TobyyIDd.net
忖度とか伝言ゲームとかいう問題を織り込むまでがITです
883:デフォルトの名無しさん
18/07/01 10:59:11.30 uHA6sqOS.net
>>844はクロージャなら当然あるべき姿としてRubyのProcを語ってるからなぁ
それに対して>>847がヒント:Smalltalkって言ってるのは
要するにSmalltalkがクロージャのあるべき姿を体現してるって言ってるワケで、そりゃ傲慢すぎる
ただの一例としてSmalltalkのような仕様もあるって言うなら批判されないのに
884:デフォルトの名無しさん
18/07/01 11:00:03.93 7m3QggRW.net
クロージャの方が自身の関数スコープを持ってる印象だな
メジャーな中では Java, C#, C++, JavaScript, Obj-C, Swift などがそうだし
Rubyのラムダも上記と概ね同じに見える
ブロックは文字通りコードの塊と考えるとreturnやbreakについて妥当な動きに見える
Proc.newは挙動がキモい
↓によるとdo…endも挙動が違うらしいから >>837 のリンク先は4種で比較した方がいいかもな
URLリンク(qiita.com)
885:デフォルトの名無しさん
18/07/01 11:08:34.39 7m3QggRW.net
中身読んだら結合度の差だったので >>865 の最後2行は撤回する
886:デフォルトの名無しさん
18/07/01 11:16:48.58 5prQoZWD.net
>>864
妄想が激しいね。
ヒント:Smalltalkっていうのは、Rubyのそのヘンテコな仕様はSmalltalk由来だということなんだけど。
お大事にね
887:デフォルトの名無しさん
18/07/01 11:19:42.69 5prQoZWD.net
>>862
きみ、結局はSmalltalkでのクロージャからのreturnの仕様を調べることすらしないで
思い込みだけで騒いでるでしょ?
そういうのを「バカ」って言うんだよ
888:857
18/07/01 11:25:18.69 usR85dqh.net
>>867
smalltalkには break や continue (next) はないだろう?
ruby のは、closure に break や next を持ち込んでおかしくなっているように見えるよ。
889:デフォルトの名無しさん
18/07/01 11:43:42.24 fENDu7uP.net
Smalltalkの仕様がどうであれ、それがRubyの仕様を正当化すると思ってなされているレス(>>847だの>>867だの)は
結局Smalltalkの仕様に権威がある、またはRubyがSmalltalkを模倣するだけの理由があるのを前提にしているわけで
傲慢という批判は妥当に思うな
890:デフォルトの名無しさん
18/07/01 11:52:10.11 tX8JlSDC.net
気持ち悪い挙動だと言いがかりをつける気満々のレスに対して
smalltalk でもそうだった昔からある挙動ですよと指摘しているだけでは。
なにも知らなければ議論はできない
といって smalltalk の知識は前提にしていいのかは疑問
とはいえやはり共通の知識がないと議論は無理だし難しいわ
891:デフォルトの名無しさん
18/07/01 12:46:18.88 fENDu7uP.net
Smalltalkを前提にすることに意味はない(Rubyと周辺状況が違いすぎるのに何故真似た?)というのが
すぐ直前の議論では
892:デフォルトの名無しさん
18/07/01 12:59:23.83 gbNzWOju.net
俺を批判するのはSmalltalkを批判するのと同じだっていうことの意味は一応ある
自分自身を守るためではなく仲間を守るためという大義名分ができる
893:デフォルトの名無しさん
18/07/01 13:03:25.38 QlwNZjji.net
滅びた言語のヘンテコな機能を真似た言語が
やっぱりヘンテコになって滅びつつある
それだけの話ではある
894:デフォルトの名無しさん
18/07/01 13:04:20.30 yp7ufL3+.net
もうRubyの話はやめよう
次世代でも現世代でもないし
895:デフォルトの名無しさん
18/07/01 13:25:35.07 5wbqPO3N.net
なんで?
rubyは触ってないけど、rubykaigiとかで盛り上がってる様子見てると、楽しそうだし盛り上がってる感あるけど。未だ現役じゃないの?
スタートアップがrails採用するイメージって、まだ古くないよね?
最近だとrailsのボトルネック部分をgoで書く話が面白かった。
896:デフォルトの名無しさん
18/07/01 13:42:13.57 k6Y+DK56.net
perlの後継になりそこなったし
海外の人気がかなり落ちてるからね
rails用言語で終わってしまった感
897:デフォルトの名無しさん
18/07/01 13:43:43.18 3SrV2o5x.net
railsにincludedされてるバッテリーだろ?www
898:デフォルトの名無しさん
18/07/01 13:57:23.22 5wbqPO3N.net
つーかrails言語で別に良くないか?
言語なんて所詮はツールなんだから。
bashでwebサービス作るやつはいないだろ?
899:デフォルトの名無しさん
18/07/01 14:06:40.12 gbNzWOju.net
目的と結果を比較されるから
目的はこれだったのに結果はこれなのか?と
目的などどうでもいいと断言できる人は少ない
900:デフォルトの名無しさん
18/07/01 15:32:54.19 5prQoZWD.net
>>870
そこまで妄想が激しいようだと治療は困難だね。
でもあきらめないで、先生からもらった薬をちゃんと飲むようにね。
でないと他人様に迷惑かけることになるから。
やくそくだよ。
901:デフォルトの名無しさん
18/07/01 15:34:06.79 2efWQwxv.net
薬? お薬の幻覚でも見えてんのか?
902:デフォルトの名無しさん
18/07/01 15:40:22.85 QlwNZjji.net
Smalltalkという完全に終わった言語に執着してるんだから
まあフツーに頭がおかしいんでしょう
薬飲めも普段自分が言われてるんだろうね
903:デフォルトの名無しさん
18/07/01 15:55:04.17 2efWQwxv.net
自分が言われたら嫌なことを人に言うって奴かw
904:デフォルトの名無しさん
18/07/01 16:07:47.75 rXvfzJkI.net
ここでも見てとれるようにRubyは言語と言うより信者がクソ。
他言語のスレで聞いてもないのにルビーデワールビーデワー宣伝必死過ぎてウザい。
Ruby自体は悪くない。
905:デフォルトの名無しさん
18/07/01 16:15:05.64 lS5AQxvk.net
>>885
同感
906:デフォルトの名無しさん
18/07/01 16:33:48.43 gbNzWOju.net
陰謀論みたいに、お前が世界を支配してるんだろって言われるのは嫌じゃないが
907:デフォルトの名無しさん
18/07/01 17:13:50.39 fENDu7uP.net
>>873
今回のSmalltalkは道連れ的に名前出されただけでむしろ被害者
変なのが混ざってないSmalltalk内ではちゃんと一貫した挙動のはずだろ?知らんけど
908:デフォルトの名無しさん
18/07/01 17:30:42.04 009IG+wv.net
>>885
よくわからんのだけど
Rubyでは~って意見が出たらそんなに嫌なん?w
俺なら他の言語でどうって意見はむしろ感心があるが
909:デフォルトの名無しさん
18/07/01 17:32:52.47 i54g35bC.net
>>889
同感
910:デフォルトの名無しさん
18/07/01 17:49:59.60 5prQoZWD.net
>>883
Smalltalkを知っている != Smalltalk信者
ちゃんとお薬のんでる?
勝手にやめちゃいけないよ?
911:857
18/07/01 18:07:48.02 FQlsc9Xo.net
>>891
なあ、smalltalk と ruby に詳しいんだったら、意味の無い罵倒を止めて、 >>869 の答えてくれない?
912:デフォルトの名無しさん
18/07/01 18:22:04.92 IY9E+BQR.net
Perlさん何で死んでもうたん?
913:デフォルトの名無しさん
18/07/01 18:23:52.18 mbUvUy2m.net
Perlはワンライナーとして生き残ったのさ
914:デフォルトの名無しさん
18/07/01 19:07:07.35 QlwNZjji.net
>>891
まあお前がSmalltalk信者かどうかは見た人間が判断するから気にするな。病気が進行するぞ
ただ客観的な事実としてSmalltalkは完全なオワコンw
このスレでは場違いすぎて引くレベル
915:デフォルトの名無しさん
18/07/01 19:34:13.12 5wbqPO3N.net
>>894
わかる。awkよりも使い勝手はいい。正規表現処理ツールとして有り。ふとnode.jsでもいい気がしたけど
916:デフォルトの名無しさん
18/07/01 19:46:03.96 x/qhOfWF.net
スレタイ読まずに書き込んでる奴らなんなの?
917:デフォルトの名無しさん
18/07/01 19:51:05.54 e+fGbKAY.net
>>862
> Smalltalkの人たちはScalaやRustのtraitsに対して、オリジナルのSmalltalkと違うからダメだ!あれは別物!って批判する
それは「批判」ではなく、理解や運用の混乱を避けるための「区別」の必要性を訴えているのです。
「オブジェクト指向」もそうで、Smalltalkが重きを置く「決定の遅延のためのメッセージングのオブジェクト指向」と
C++以降の「抽象データ型をクラス(またはそれに準ずるエンティティ)で実現するオブジェクト指向」とは区別すべきと一緒です。
批判があるとすればそれは、本質的に違うものに後から同じ名前を付けて混乱を招いていることに対するものでしょうね。
918:デフォルトの名無しさん
18/07/01 20:00:26.61 e+fGbKAY.net
>>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.
^'
919:'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 の複雑な状況の説明を試みるのはあまりよい方法ではないのは確かですね。
920:デフォルトの名無しさん
18/07/01 20:01:01.72 gbNzWOju.net
>>897
pythonやrubyで型を宣言させる話だったな
型を宣言すれば次世代に行けるらしい
921:857
18/07/01 21:20:45.24 FQlsc9Xo.net
>>900
かといって、スレタイの TypeScript だって、 Python + 型チェック とあんまり変わらなくないか?
#まあ、TypeScript は次世代じゃないという主張はありだけど
922:デフォルトの名無しさん
18/07/01 21:23:13.47 mO0FHij0.net
掲示板の書き込みに#で補足コメントするスタイルはキモすぎる
923:デフォルトの名無しさん
18/07/01 21:23:34.86 8lWKFGMK.net
どんな言語も最初は簡単で使いやすいと言う。
しかし、注目されて実用レベルになると言語仕様が破綻してくる。
お前さんが使っている次世代言語もいつのまにか消えてなくなるさ
924:デフォルトの名無しさん
18/07/01 21:28:36.04 jMta/5/n.net
とりあえず動的言語嫌いだから次世代に遺さなくていいよ
925:デフォルトの名無しさん
18/07/01 22:10:15.50 iGjgOveK.net
せやな
// 型なし糞言語は死ね
926:デフォルトの名無しさん
18/07/01 22:47:05.58 IY9E+BQR.net
米は//より#のが好きです
//や’はスカスカし過ぎててなんか
927:デフォルトの名無しさん
18/07/01 23:13:47.55 CF9fODYJ.net
まーたsmalltalker来てんのか。草
928:デフォルトの名無しさん
18/07/01 23:27:37.29 eYdB7t9V.net
>>906
俺逆だ
#の目にうるさいこと極まりない
コメントですらバグったのかと思う
929:デフォルトの名無しさん
18/07/01 23:41:20.04 YPIrazbz.net
‘
930:デフォルトの名無しさん
18/07/02 02:35:06.08 1yNW4Sj0.net
スクリプト言語はshebangあるから#じゃないとうれしくないな
コンパイル言語は好きにすればええ
931:デフォルトの名無しさん
18/07/02 03:45:57.45 sK89Ta1p.net
>>876
Rubykaigiは井の中の蛙の見本市だから
Ruby最強他言語バーカって精神異常者の集まり
そら宗教の本山みたいなもんだから盛り上がり自体はあるが
技術的にはもう終わってる
932:844
18/07/02 06:42:05.84 9wGdj7CA.net
>>857
Ruby のProc, block はクロージャで、
Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの
その際、block内でbreak を呼ぶと、ループ処理が完遂せず、失敗とみなしたのだろう
ラムダは後に作られたから、return で値を返すようにした
結局、Proc, block、ラムダ、クラス・モジュールも、
スコープチェーンという単一の概念から出来ている
自分の1つ外側のスコープを指す、ポインタを持っている
933:デフォルトの名無しさん
18/07/02 09:01:43.20 Ovw/GWMA.net
>>911
すげー思い込み強すぎ。中にはそういう人もいるかもだけど多数派じゃないだろ。
原理主義者怖すぎ。あんまり偏りすぎて人刺したりするなよ。
934:デフォルトの名無しさん
18/07/02 09:17:09.45 BcUDQh/y.net
> Procは、blockを変数に入れて、持ち運んで、後で呼べるようにしたもの
これしょうもない設計だよな。
jsとかだったらコールバック関数で統一的に扱えてるところだろ。
こんな本質じゃない言語機能
935:ムダに複雑にして何やってんだか。 わざとパズル難しくして解いて「楽しい」こんな言語かな?
936:857
18/07/02 09:49:51.97 OVGUyhuB.net
>>912
あなたがrubyを好きなのはよくわかる、が
>結局、Proc, block、ラムダ、クラス・モジュールも、
>スコープチェーンという単一の概念から出来ている
>
>自分の1つ外側のスコープを指す、ポインタを持っている
単一の概念にするのは失敗してるんだ
理由は簡単、blockにbreakがあるせい。breakの飛び先は、通常のlexcal scope では解決できない。飛び先は定義時と関係ない、後で呼び出される each などのblockを呼び出す関数内に有るからな
他の内部イテレータ使う言語は、諦めて例外やcall/ccなどの大域ジャンプでエミュすることにしてる。
rubyは頑張ってなんとかしようとして、結局統一出来ず、でも似てるから使用が困惑する結果に