次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/20(木) 04:43:27.12ID:mNwXvrXv
いざ、語ろうぞ。

スレタイ超過のため、一部省略。
Go, Erlang, Kotlin, etcもウェルカム。
Haskellは協議により次世代失格になりました

前スレ
次世代言語議論スレ[Go Rust Haskell Scala]第3世代
http://echo.2ch.net/test/read.cgi/tech/1488608741/
2017/05/08(月) 18:54:25.80ID:nU60kBJx
>>329
あー。。。
あんま考えずに提案してたわ。。。
うーん。。。
インターフェースは変えずにって条件付ける?
実際に引数増やさないと駄目な時は補助関数作って、実際の処理はそっちに丸投げみたいな形で。
一応第二弾ではそう言うのも考慮して、既存の関数に手を加えないで機能拡張ってテーマで行く予定だけど。
2017/05/08(月) 21:10:34.76ID:nbca9qQS
>>335
> 行に一個二個を回答側の都合ってのは普通駄目だろう。。。

であれば、正規表現に丸投げするのでもなければ処理内容にも影響するので
例えば 'xxxoooxxx' 内に 'oo' は1個と数えるか2個と数えるかとかは出題側で事前にきちんと決めてください
2017/05/09(火) 00:31:37.08ID:fIUN0UPL
ああ!
勘違いしてた。
そう言うことね。
ラッキー7(777)検索してて7777ってなってたら1個と数えるか2個と数えるかって事か。
私の方法だと2個に数えてるので2個にしましょう。
339
垢版 |
2017/05/09(火) 02:14:34.77ID:w3DidVUp
メモリをジャブジャブ使えて1個で考えて良いなら殆どの言語で一行なんだけどなぁ。
jsで言うと(content+'').split(delimiter).length-1だから。
2017/05/09(火) 07:18:26.65ID:83wQykSi
>>335
「小説とか」ということは、日本語の可能性もあるの?その場合に想定してるエンコードは?

とにかくideone.comとかで参加者が気軽に動作を確認でき、かつ仕様を満たした回答例を先に出しといてください
実戦向きとか言うわりに細かな仕様がまったくわからんし、動くコードでもなければエスパーするにも限界があるよ
2017/05/09(火) 08:36:02.65ID:YN7Krfta
言語が次世代になっても要件定義(笑)などが旧世代だと
どうにもならんね
2017/05/09(火) 09:22:59.82ID:7e9h09Aa
>>339
+'' ってなんかのおまじない?
343
垢版 |
2017/05/09(火) 10:56:31.08ID:b+ihuqXk
>>342
splitがundefにならんように、文字列とコンカチしてる。
344
垢版 |
2017/05/09(火) 11:59:38.90ID:b+ihuqXk
言葉足らずだったな。文字列と見せかけて数値にどっかで化けさせた奴対策だったり、そもそも引数来なかったとかそういうやつ。
2017/05/09(火) 13:13:43.62ID:7e9h09Aa
>>344
なるほど
ただ、それでエラーは出なくなるだろうけどバグが見つかりにくくなる悪寒しかしない
346
垢版 |
2017/05/09(火) 15:17:46.56ID:tzdZ6ACH
>>345
数数えるんだから、数えられないものが来たらゼロになっていいんよ。
2017/05/09(火) 16:14:33.37ID:PEK3Ov/R
>>339
そうなんだ。。。
じゃあ、両方のを書くのでどっちもおkにします。

>>340
長さは?とか聞かれて小説とかって書いたけど、今回は適当なソース読ませる程度しか想定してないし、参入障壁にしたくないからアスキー文字だけしか想定してない。
本当、思い付きで申し訳ない。
そんな訳で下のコードをコピペして検索にかけると

>search search.hs search
(True,16)

ってなるはず。

んで、777を検索して7777を1個と数える版はsearch2として書いてみた。
最早Pythonよりも修正箇所多そうだけど気にしない。
do形式よりモナド形式が好きなのでdo形式コメントアウトしてるのは気にしないで欲しい。
(ちょうど良かったんで7777を確認用にdoの後ろに追加してる)
2017/05/09(火) 16:15:07.28ID:PEK3Ov/R
import System.Environment

search w cts = search' (False,0) w cts
where
search' (b,n) _ [] = (b,n)
search' (_,n) w (c:cs) | take (length w) (c:cs) == w = search' (True,n + 1) w cs
search' t w (_,cs) = search' t w cs

search2 w cts = search' (False,0) w cts
where
search' (b,n) _ [] = (b,n)
search' (_,n) w cts | take (length w) cts == w = search' (True,n + 1) w $ drop (length w) cts
search' t w (_:cs) = search' t w cs

-- main = do 7777
-- (file:word:_) <- getArgs
-- content <- readFile file
-- print $ search word content

main = getArgs >>= \(file:word) -> readFile file >>= print.search word
2017/05/09(火) 16:29:20.54ID:7e9h09Aa
>>346
contentがundefinedでdelimiterが'e'とかだったら?
350
垢版 |
2017/05/09(火) 20:01:48.57ID:Qrp6KBdW
>>349
undefinedと空文字列かー、jsdoだと空になったけど、文字列化してしまうなら辛いな。
2017/05/11(木) 14:33:48.35ID:xTl8MRgt
第三形態とやらはどうなった?
2017/05/11(木) 14:41:22.16ID:+i4P6kRh
第一第二形態で次世代言語の回答もないのに出して良いものか。。。
2017/05/11(木) 14:47:49.71ID:+i4P6kRh
まとめとこう。
>>309で一旦まとめて

インターフェース(引数)固定縛り。
(補助関数可)
英数字のみのファイル前提。
行やファイル全体もメモリに収まる程度を想定。
777で検索した際、7777は検索結果1個とカウントしても2個とカウントしてもおk。
2017/05/11(木) 17:06:04.00ID:xTl8MRgt
そういうのいらないから第三形態と回答例はよ
355デフォルトの名無しさん
垢版 |
2017/05/11(木) 17:14:36.14ID:+i4P6kRh
はいはい・・・。
んじゃ、検索で見つけた位置も追加で表示するように拡張。

import System.Environment

search w = search' (False,0,[],(1,0)) w
where
search' (b,n,ps,_) _ [] = (b,n,reverse ps)
search' (b,n,ps,(y,_)) w (c:cs) | c == '\n' = search' (b,n,ps,(y + 1,0)) w cs
search' (_,n,ps,(y,x)) w (c:cs) | take (length w) (c:cs) == w = search' (True,n + 1,(y,x + 1):ps,(y,x + 1)) w cs
search' (b,n,ps,(y,x)) w (_:cs) = search' (b,n,ps,(y, x + 1)) w cs

search2 w = search' (False,0,[],(1,0)) w
where
search' (b,n,ps,_) _ [] = (b,n,reverse ps)
search' (b,n,ps,(y,_)) w (c:cs) | c == '\n' = search' (b,n,ps,(y + 1,0)) w cs
search' (_,n,ps,(y, x)) w cts | take (length w) cts == w = search' (True,n + 1,(y, x + 1):ps,(y, x + 1)) w $ drop (length w) cts
search' (b,n,ps,(y,x)) w (_:cs) = search' (b,n,ps,(y, x + 1)) w cs

-- main = do 7777
-- (file:word:_) <- getArgs
-- content <- readFile file
-- print $ search word content

main = getArgs >>= \(file:word:_) -> readFile file >>= print.search2 word
2017/05/11(木) 17:32:30.86ID:+i4P6kRh
>>348のコードをコピペしたテスト用テキストだとこう表示されるはず。

>search test.txt search
(True,16,[(3,1),(3,11),(5,1),(6,1),(6,51),(7,1),(7,17),(9,1),(9,12),(11,1),(12,1),(12,45),(13,1),(13,17),(18,12),(20,60)])
2017/05/11(木) 17:35:54.43ID:/dUENRjT
結局俺たちの次世代言語はハスケルとスモールトークだったということか。
2017/05/11(木) 17:41:01.83ID:+i4P6kRh
んな訳ないと思うんだが。。。
第三形態まで出たんだから、次世代言語勢たのんますよ。
本当。
2017/05/11(木) 18:01:32.36ID:+i4P6kRh
要約

英数字のみのテキストファイルと検索文字列を受け取るコマンド。
行の長さや、ファイル自体の大きさは常識の範囲内。(メモリに収まる大きさ)
関数のインターフェース(引数)固定縛り。
第一形態からなるべく大きな変更無しで拡張して行くルール。

第一形態
検索文字列が存在するかどうかのみ表示

第二形態
検索文字列の存在と何個あるか表示

第三形態
検索文字列の存在、個数、見つかった位置を表示

Haskell
第一形態
>>276

第二形態
>>348

第三形態
>>355
2017/05/11(木) 18:04:33.44ID:+i4P6kRh
あ、777検索してて7777は一個二個どっちで数えてもおk。
361
垢版 |
2017/05/11(木) 18:41:45.50ID:lLJXISKu
>>359
ガバガバでは?

type LookupResult struct {
//略
}
func (lr LookupResult) foundAsBool Bool{
return lr.found
}
func Lookup(needle,haystack String) LookupResult{
//検索処理
return LookupResult{found:結果}
}

って第一形態書いとけば、LookupResultが超リッチになってくだけでインターフェイスもへったくれもない石器時代の発想で書けちゃうよ。
そして往々にして業務アプリ屋ならちょっと気がおかしいレベルで、こんな形で結果をラップする事を徹底してる。
大きな変更は無いけど、いい事も無い。
362
垢版 |
2017/05/11(木) 18:42:31.33ID:lLJXISKu
>>361
あ、ごめん。foundAsBoolの後ろに()無いな。
2017/05/11(木) 18:46:17.93ID:TwpHLB2C
しもた。。。
7777を一個と数える版(search2)でバグあった。
見つけたらdrop (length w)してるんだから、リストに追加する発見位置はそのままだけど、現在位置は検索文字列の長さ分足さなきゃだった。
適当に修正お願いします。(おい)
2017/05/11(木) 20:01:32.06ID:o2lqEhku
第三形態も1から書いたほうが早いな
そう、バッテリー付き言語ならね
2017/05/11(木) 20:43:01.26ID:pualqazL
ていうか何のスレ?
次世代言語議論してないよな
2017/05/11(木) 21:12:13.28ID:w7aTa8S+
次世代言語での>>359への回答待ち。
2017/05/11(木) 21:28:25.35ID:w7aTa8S+
って事は実行結果の例も修正せなな。。。

>>348のコードをコピペしたテスト用テキストだとこう表示されるはず。

>search test.txt search
(True,16,[(3,1),(3,16),(5,1),(6,1),(6,56),(7,1),(7,22),(9,1),(9,17),(11,1),(12,1),(12,50),(13,1),(13,22),(18,12),(20,60)])
2017/05/11(木) 22:14:35.58ID:pualqazL
久しぶりにコードみたけどHaskellちゃんキモイな〜

10年前から主要言語TOP10は変わってないという事実をお忘れなきように
369デフォルトの名無しさん
垢版 |
2017/05/11(木) 23:32:16.09ID:5z6DmCSe
10年間スマホを世界中で売りまくっても何も変わらなかったのは意外だな
2017/05/12(金) 00:30:03.06ID:3oRK7AIr
それは今後も主要言語は変わらないから次世代言語について考えることは無意味ってことかな
371259=359
垢版 |
2017/05/12(金) 02:24:49.85ID:QHw9MbYN
>>368

>>259
372デフォルトの名無しさん
垢版 |
2017/05/12(金) 06:43:44.99ID:4vGyFDSj
実装基準がよくわからない。

import System.Environment(getArgs)
import Data.List(isInfixOf,isPrefixOf,tails,findIndices)

search1 = isInfixOf
search2 word = length . filter (isPrefixOf word) . tails
search3 word content = (ps /= [], length ps, ps)
 where ps = concat . zipWith indices [0..] $ lines content
    indices l = zip (repeat l) . findIndices (isPrefixOf word) . tails

main = do
 (file:word:_) <- getArgs
 print =<< search1 word <$> readFile file
 print =<< search2 word <$> readFile file
 print =<< search3 word <$> readFile file
2017/05/12(金) 08:36:47.18ID:u9nYGLh2
そもそもこのスレからHaskellはスレ違いになったんだが
374
垢版 |
2017/05/12(金) 08:40:43.26ID:6RnAOpKz
>>364
第二形態書いた時点で第一形態は、第二形態を中で呼ぶ様に書き換えないと悲劇だし、第三形態も同じ。
レビューで辛辣な第一形態を安易に書いたdisりを受けたあと、直交性が失われるために、それより前の形態をAPIとしてobsoluteにしてライブラリ関数とかマクロに降格するレベルだよね。
2017/05/12(金) 10:34:41.20ID:nQbZenvu
>>372
Data.Listの関数はisInfixOfとisPrefixOf、tailsを本で読んだだけで使った事ないな。。。
それ以外は見た事すらない。
ちゃんと使うと、ここまで書けるのね。

そう言う意味じゃ、おいらのは入門書前半の知識だけでも書けるって感じやね。

おいらがHaskell好きなのは美しさもだけど、ひたすらミニマムな知識だけでも何とかなっちゃうのが良い。
数学と同じで便利な関数知ってれば、強力な武器だし周りからは難しそうに見えるけど、基本はとても簡単で、少ない武器でもどうにかこうにか自力でも解ける。

これこそ初心者向け言語だって思ってるんだけどねぇ。。。
2017/05/12(金) 10:35:36.50ID:nQbZenvu
>>373
Haskell追い出せるだけの次世代言語の立派な回答求む。
2017/05/12(金) 13:24:07.84ID:H6Uk5vuw
"Pharo Smalltalk"

search1st := [:str :kw | str includesSubstring: kw].

search2nd := [:str :kw | (str splitOn: kw) size - 1 ].

search3rd := [:str :kw |
 Array streamContents: [:ss |
  (str lines collect: #readStream) doWithIndex: [:strm :idx |
   [strm match: kw] whileTrue: [ss nextPut: idx -> (strm position - kw size + 1)].
  ]
 ]
].

http://ws.stfx.eu/DQART2BS6GYF
378デフォルトの名無しさん
垢版 |
2017/05/12(金) 17:26:32.26ID:k//9Mr+f
>>368-369
でもCの地盤沈下は確実に進んでるわけで

まー2017にはさすがにCOBOL使ってるシステムも
リプレースされただろ?されてるよね?ってところ
2017/05/12(金) 20:20:28.20ID:H6Uk5vuw
>>377 の search3rd はもっとシンプルに書けたので差し替え

search3rd := [:str :kw |
 (str lines collectWithIndex: [:line :idx |
  (line allRangesOfSubstring: kw) collect: [:range | idx -> range first]
 ]) concatenation
].

http://ws.stfx.eu/A3HB6MT66GI5
2017/05/12(金) 22:43:42.90ID:y9SJMwIK
第4世代、4番目、英語で言えば、Forth
2017/05/12(金) 22:45:07.26ID:r6F8dCD7
残念、fourth でした。
2017/05/13(土) 00:01:55.41ID:hYOIVOdy
そんなの良いから。
実際問題キャットドアより簡単だから。
次世代言語以外が回答してるのがおかしいから。
2017/05/13(土) 01:15:28.36ID:VbJPsYiJ
終わった言語が必死にコード載せてアッピールしようとしててウケるw
2017/05/13(土) 01:52:43.37ID:7Z9U0QOC
pascalとかForceとかね。次世代言語だよ?
Fortunは77じゃないよね
2017/05/13(土) 04:50:33.84ID:j31cCXIw
数行のコードも書けぬ低脳に担がれ哀れな次世代()言語
2017/05/13(土) 08:16:21.72ID:2mf4fJqx
ぶっちゃけ新しい言語とか覚えるの面倒だから次世代とかいらねーって思ってるんだろ?
2017/05/13(土) 08:20:03.99ID:zCDOTfft
次世代言語を考えるなら古典に立ち戻ることが重要だな。
スレタイに挙げられた言語は局所最適の枝葉末節だらけで参考にならない。
2017/05/13(土) 08:26:47.84ID:pUHHN6Pq
じゃあ原点に立ち返って、Smalltalkのどこがゴミで死んだのか確認しようぜ
2017/05/13(土) 09:04:37.48ID:1FO9O0uX
さすがにそれはスレ違いだろう
2017/05/13(土) 09:12:34.64ID:4agJqfcC
いくらお題がアレとはいっても、
ここまで来てなんで一つもKotlinとかGoで書くやつがいないのか。
簡単だし時間かからないだろ?
Smalltalk馬鹿にしてる奴も意味不明。
2017/05/13(土) 10:51:00.22ID:Cn0XNRH7
お題が簡単すぎて面白くないからだろ
2017/05/13(土) 10:59:13.12ID:n2tLG6k9
ほんまそれ。Pythonの例で問題の糞さが示されたと思ったが
2017/05/13(土) 11:11:25.11ID:XdPYiSal
python がいかに読みやすいかが示されただけだな。
2017/05/13(土) 11:14:51.78ID:GlvX42FB
Pythonの第三形態マダー?
2017/05/13(土) 11:51:00.37ID:rBo1iP3S
Pythonから次世代言語に乗り換える意味が見当たらない
396
垢版 |
2017/05/13(土) 12:14:40.76ID:Mm9GiQ8r
>>390
夜か明日、書いてもいいけど、全く以って問題が悪すぎて、次世代もクソも無いと思うよ。
2017/05/13(土) 14:48:56.11ID:7U8nUyJb
>>394
現実、3.x だから第3形態じゃないのか?
0.9 もあったから第4形態かもしれんが。
2017/05/13(土) 16:19:26.54ID:XdPYiSal
プログラミングエアプ勢の一発逆転の可能性
それが次世代言語の意義なんだよ。
2017/05/13(土) 18:54:00.95ID:zCDOTfft
問題が悪いとふんぞり返っていれば次世代言語がどこからか降って湧いてくるのか。
便利なスレだな。
400
垢版 |
2017/05/13(土) 21:16:28.56ID:l2RlSRsK
また、「エアプ」か。どこで流行ってんだその言葉。。
問題が悪いからと言って次世代言語が降ってこないのは当たり前と言うか、
自動車が発明される前に人々にニーズ調査したら「すごく早くて馬が疲れにくい、壊れにくい馬車がほしい」って答えただろうってフォードのおっさんの名言に尽きるだろ。
2017/05/13(土) 21:56:48.51ID:QiNZfANm
>>384
英文は無理でも言語名の綴りぐらいはちゃんと書こうね
ForceじゃなくてForth
FortrunじゃなくてFortran
pascalはPascal
(固有名詞だから頭文字は大文字、なお全部を大文字で書く・・・PASCAL・・・か否かは趣味の問題だが
全部を大文字で書くのは小文字がディスプレイやプリンタで表示・印字できなかった古い時代の名前というニュアンスが加わる)
2017/05/14(日) 06:47:23.26ID:FpH7uWr+
>>397
すぐ手前の流れも読まないPython使いってなんかマヌケだね
2017/05/14(日) 11:16:19.57ID:g1XH9FW+
マジな話、いまだにショボいお題にご執心のハスケラの方がマヌケだけどね
2017/05/14(日) 12:32:07.52ID:1QHY+inp
ドア云々とかよりは実践向きだと思うけどな
2017/05/14(日) 12:40:55.67ID:ZZLeiCLl
まあドアよりはな
2017/05/14(日) 13:56:58.74ID:KHWozqTm
>>403
結局それか
何か叩いてないと安心できないだけ
2017/05/14(日) 14:23:56.19ID:tMuNfTLo
ドアは糞
だがしかしコードをちゃんと読めて(あるいは書けて)改めて糞だと言えてる奴がどのくらいいるかは怪しいな
ドア→実用なし→糞と短絡してるだけとか
実際、>>404>>405はドアのお題、何分ぐらいで書けるの?
408405
垢版 |
2017/05/14(日) 16:59:45.21ID:ZZLeiCLl
>>407
Juliaの書いて、書いた上でドア糞って言い始めたのは俺だぞ
あれ思い出しながら書いたから一時間くらいのかかったわ
なんか言語仕様変更してる所とかあったし
2017/05/14(日) 18:38:38.10ID:tMuNfTLo
>>408 それはお見それしました
>>404は?
2017/05/14(日) 19:19:30.14ID:oT3eSlat
キャットドア問題も解けないくせに
2017/05/14(日) 19:34:09.72ID:hXmCvLEt
>>408
Images のデータ構造また変えやがった。いい加減にしてくれ。
2017/05/14(日) 19:53:34.96ID:tMuNfTLo
>>410
あれはコンポジットで解決だろ
その前に問題点理解できてるのか?
2017/05/14(日) 22:19:02.85ID:USv6MFnh
Go: http://ideone.com/HpfQo5
Kotlin: http://ideone.com/9xPk7i
2017/05/15(月) 00:34:41.47ID:vRkjYJPr
次世代言語でも手続き型言語の呪縛からは解き放たれないのか。。。
既存言語の着せ替えでしか無いなら、プログラムの組み易さも大差無かろう。
2017/05/15(月) 00:54:38.55ID:vRkjYJPr
>>410
Haskellスレのおいらの過去の書き込みより。
341 名前:デフォルトの名無しさん [sage] :2017/04/29(土) 15:22:04.96 ID:nyANDfpK
デザパタみたいなの?
パターンって程実践で使われてないだろ。
んー。。。
使ってた感触だと、割と行き当たりばったりからの仕様変更でも何とかなるのが関数型言語の強み?と思わなくも無い。
ちょっとの変更にも関数経由するから、自然と既存の関数使い回せないか考えるし、関数型言語もそう言う風に進化して行ってるように感じる。

某スレで話題になったキャットドアクラスも、変な縛りがなければ究極的には機能の組み合わせでドアが開くかどうかの問題なのだから、タプルにBoolを並べれば良い。
ただ、同じBool値ばかりだと違う機能を付いてる(付いてない)と表現しやすいので、適当な型を作ってコンパイラが順番間違えたらエラー出すようにする。
cd = (False,型Aの値)
値が欲しかったら
getA t = snd t
または引数の時点で直接欲しい値にアクセス。
getA (_,x) = x
仕様の拡張に関してはタプルを入れ子にする事とする。
継承というよりは委譲に近い。
理屈では(以前の機能,拡張機能)の形でいくらでも入れ子に出来る。
cdEx = (cd,型Cの値,型Dの値)
cdFX = (cdEx,型Eの値)
基本機能だけなら基本のタプル取り出して使う。
getA $ fst cdEx
拡張機能だけまたは、拡張機能と基本機能の組み合わせは引数の時点で(以下略)
getC (_,x,_) = x
getAD ((_,x),_,y) = x + y

ただ、関数型言語は元々多くの状態を管理するのに向かない。
例の通り、構造が複雑になると扱い難い。
HTMLなりXMLなりXAMLなりに状態管理は任せた方がいい。
んじゃ、おいら夜勤明けなんで寝るわ。
お休みzzz...
2017/05/15(月) 01:06:58.66ID:8Y8+/ZxP
結局関数型の雄はなんなの?
2017/05/15(月) 01:32:26.10ID:hQsWbFnv
既存の言語でやれってことだろ。
オブジェクト指向をむりやり c でやったように。
結局それが正解。
2017/05/15(月) 01:34:34.82ID:vRkjYJPr
何が関数型言語の雄になろうと次世代言語にはならないかなぁ。。。
私はただHaskellに惚れてるだけで、ここが良いって紹介もするけど、それって結局Lisperと同じ道を歩んでると思う。
2017/05/15(月) 01:36:41.34ID:vRkjYJPr
しまった。。。
一人称が真面目モードに。
x私
oおいら
2017/05/15(月) 06:38:31.61ID:k5wZeeQn
アテクシはScalaが最強だと思いましてよ、ホホ
2017/05/15(月) 09:32:58.17ID:G/N4Afa9
量子コンピュータ向けの言語じゃね?
言語なのかどうか知らんけど。
2017/05/15(月) 10:34:46.05ID:OVQU3b0Y
次世代と称される流れには2つの傾向があって
ひとつはScalaやSwiftのように従来のOOPLをベースにして(つまり機能は特に削らずに)
これまで関数型言語の独擅場だった型推論やオプショナル型といった型システムのサポートを手厚くしたもの
もうひとつは、さらに一歩進めていろいろな不都合の元凶であったクラス(もっというと継承)を外して言語機能を大胆にシンプルにしたもの
GoやRustがこれにあたる…ってところか

あと個人的には並行・並列処理のサポートを手厚くした言語、Clojureや前と重複するけどGoとかも
この調子でコアが増え続ければ重宝されると思う

Rubyは両方を狙っているけどたぶん失敗する
423
垢版 |
2017/05/15(月) 12:50:33.96ID:HDk+iNO5
Rust、今更もう一度触ってみたけど、割とまとまってきてるな。
風呂敷広げ過ぎた悲壮感減ってきてる。
ただ、それでもすごく安全なCとして使うほうが便利な気がするわ。
2017/05/15(月) 13:17:14.26ID:CnSqTz4B
Rustなんて木構造もまともに書けない言語が次世代とか飯食ってるときにわらかすなwwwwwww
425デフォルトの名無しさん
垢版 |
2017/05/15(月) 14:36:26.20ID:JAUTsopg
わらかす
2017/05/15(月) 14:45:26.78ID:CnSqTz4B
「笑かす」な。
2017/05/15(月) 15:08:17.40ID:hQsWbFnv
木構造もすべて配列で用意させる硬派な言語
2017/05/15(月) 15:50:28.38ID:CnSqTz4B
Rustって言わばCより低機能な言語だからな。

そりゃ何も出来なきゃ安全だよな。
429
垢版 |
2017/05/15(月) 17:18:40.45ID:HDk+iNO5
>>424
RcとRefCellで書けるんじゃないの?
2017/05/15(月) 17:20:05.97ID:ciuqqN4z
>>416
sml/nj
2017/05/15(月) 17:33:40.67ID:CnSqTz4B
>>429
教科書的に書くだけならな。Cのように実用に耐え得るものは書けない

ttps://hackernoon.com/why-im-dropping-rust-fd1c32986c88
432
垢版 |
2017/05/15(月) 18:36:33.51ID:HDk+iNO5
>>431
この人が行き詰まってるのは、オブジェクト指向そのまま当てたからでは?
structのImplでもなく、traitの関数でもなく、
traitのImplで書けば何とかなりそうだけど。
あと、サイズを取得したいだけなら、lifetimeを明示してCopyちゃんとすれば良いのでは?
2017/05/15(月) 19:00:47.68ID:RWNXh8sg
書けると主張するなら書けばいいのに
434デフォルトの名無しさん
垢版 |
2017/05/15(月) 19:24:57.87ID:jxMhaoqU
笑かす
2017/05/15(月) 20:17:30.50ID:hQsWbFnv
実際書くと大変なことを無意識に理解してんでしょ。
そういう種類のごまかしをするやつはよくいる。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況