2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

コレクションが最高にイケてる言語を作ろう

35 :デフォルトの名無しさん:2017/04/24(月) 23:15:32.53 ID:iqoCzYpO.net
カオスすぎんだろsmall talk w
じっくり勉強すれば理に適ってるのか?

36 :デフォルトの名無しさん:2017/04/25(火) 08:58:59.48 ID:5ILiyJO9.net
>>35
> カオスすぎ

>>32のコレクションのクラス階層についてでしたら、ほとんどは抽象クラスや特殊用途のクラスなので
とりあえずこちらの図の黒枠のだけを押さえておけばよいかと
http://imgur.com/a/liiNB

OrderedCollectionは要素が追加可能なだけのArrayです
Dictionaryは他言語ではHashとかMapとか呼ぶことがあります
Setは重複を許さない集合
Bagがちょっと特殊ですが要素の数も覚えてくれるSetで他言語ではMultisetと呼ぶものもあります

37 :デフォルトの名無しさん:2017/04/25(火) 09:25:33.87 ID:5ILiyJO9.net
>>36
> 要素の数も覚えてくれるSet

Bagについてはたとえば文字列(仮に 'SMALLTALK')を構成する文字とそれぞれの出現数を多い順に知りたいとき
文字列(やはりコレクション)をBagに変換する(asBag)などして、こんなふうに書くことができます

'SMALLTALK' asBag sortedCounts
"=> {3->$L . 2->$A . 1->$K . 1->$M . 1->$S . 1->$T} "

38 :デフォルトの名無しさん:2017/04/26(水) 23:16:35.99 ID:H7jXi739.net
OrderedCollectionって順序付きコレクションってことだよね?
ツリーならsequenceableというのは若干違和感あるが…
先頭から順にたどれるから間違ってはいないのかな…

39 :デフォルトの名無しさん:2017/04/26(水) 23:57:14.04 ID:yZOF+1hb.net
>>38
OrderedCollectionはツリーではなく最近の言語にはよくある動的配列の一種です
内部にちょっと大きめの配列を持っていてそれを使って要素の追加や削除、挿入などの機能を模しています
固定長配列からさほど劇的には速度を落とさず使えるのがウリです

40 :デフォルトの名無しさん:2017/04/27(木) 00:46:55.31 ID:gwcfT8Ye.net
small talk て速度重視言語なの?
長い歴史の中で必要に迫られたんだろうか?

41 :デフォルトの名無しさん:2017/04/27(木) 07:01:43.40 ID:1+VMbtmi.net
>>40
Smalltalkは言語のルールや変更不可能な動作中核(VM)部分をできるだけ小さく保って、
GUIやIDEを含む処理系(元々はダイナブック向けの暫定仮想OS)のほとんどを自身で記述するのが方針でした

▼Smalltalkの底を流れる設計思想
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#

そのため、当初から速度は潜在的な課題のひとつでしたが1970年代はAltoやDoradoという10年後のPCのスペックを想定した
「タイムマシン」を金をかけて作ってそこでSmalltalkを動かすことで、柔軟性を損なう最適化を避けるようにしていたようです

▼The Future Doesn't Have to Be Incremental
https://github.com/matthiasn/talk-transcripts/blob/master/Kay_Alan/NonIncrementalFuture.md
https://pbs-h2.twimg.com/media/C6cMkr4U4AAEDoJ.jpg

1980年代にはそういうことはできなくなったので、VMの高速化技術が試行錯誤されました
その成果が90年代のJavaのHotSpotや00年代のJSのV8に転用されています
そんなわけで、すごい高速なコアに頼ってそこそこの速度で動いているというのが現状です

42 :デフォルトの名無しさん:2017/04/28(金) 21:26:50.07 ID:oDhQrrTb.net
設計思想は素晴らしい。
のかな?

43 :デフォルトの名無しさん:2017/05/05(金) 18:00:36.59 ID:oGFFYBoD.net
コレクション使ってて使いづらいと思うことも最近は減ってきたよな
昔より言語が進歩してるんだろか

44 :デフォルトの名無しさん:2017/05/05(金) 21:23:00.44 ID:Qc8J8Hpx.net
>>43
でもねぇ、世の中にはコレクション操作が使いづらい
退化した最悪な言語が存在する

http://d.hatena.ne.jp/edvakf/20090405/1238885788

元々は手続き型として設計された簡潔な言語だったけど、
オブジェクト指向やら関数型やらを行き当たりばったりに増築し続けたおかげで、
コレクション操作に関する「一貫性」という設計哲学が破綻してしまった例だね

45 :デフォルトの名無しさん:2017/05/05(金) 21:52:01.71 ID:Qc8J8Hpx.net
[Ruby]
a.sort().reverse().map{|x| x.to_s}.join('-')

[JavaScript]
a.sort().reverse().map(function(x) { return x.toString() }).join(“-“)

[Python]
'-'.join(map(lambda x: str(x), reversed(sorted(a))))

46 :デフォルトの名無しさん:2017/05/06(土) 00:47:46.27 ID:feNHzNcv.net
[Ruby]
a.sort().reverse().map(&:to_s).join('-')

map{|x| x.to_s}
map(&:to_s)

47 :デフォルトの名無しさん:2017/05/06(土) 07:38:32.83 ID:gBi5/Vqg.net
[Pharo Smalltalk]
(a sort reverse collect: [:x | x asString]) joinUsing: '-'
(a sort reverse collect: #asString) joinUsing: '-'

48 :デフォルトの名無しさん:2017/05/06(土) 17:44:28.43 ID:fFyXczFW.net
パイソン駄目言語なのか〜
一応人気あるらしいが…
ルビィは俺も好き。

49 :デフォルトの名無しさん:2017/05/11(木) 21:34:24.03 ID:645iMSZy.net
C#も文字列結合joinはあんま美しくないかな。
String.Join("-",list)

やっぱRuby最強かな

50 :デフォルトの名無しさん:2017/05/13(土) 18:41:35.29 ID:Jd7eipCz.net
C#だとString.IsNullOrEmpty(str)とかもあんまり美しくないかな。
便利だし慣れたらそれほど気にならないけど。

51 :デフォルトの名無しさん:2017/05/13(土) 20:15:39.61 ID:IutQ3qOG.net
>>50
どう美しくないの?

52 :デフォルトの名無しさん:2017/05/13(土) 20:16:44.40 ID:cg00FUZZ.net
49 = 50

53 :デフォルトの名無しさん:2017/05/13(土) 21:49:29.63 ID:Jd7eipCz.net
>>51
メソッドチェーンで書きたいじゃんやっぱ。
とはいえ、nullにIsNullOrEmptyなんてメソッド持たせるのは無理だろうから
現状の形でしょうがないとは思う。

54 :デフォルトの名無しさん:2017/05/13(土) 21:58:59.13 ID:U/ufHPaa.net
>>53
拡張メソッド

55 :デフォルトの名無しさん:2017/05/15(月) 19:30:38.67 ID:Vq1LD+5r.net
>>54
なにこれキモイ

56 :デフォルトの名無しさん:2017/05/17(水) 21:13:54.47 ID:U14IiR72.net
>>54
なにこれキモチイイ

57 :デフォルトの名無しさん:2017/05/20(土) 20:55:00.46 ID:Hvbhp0e0.net
nullはもっと進化してほしいよね。
現状、nullチェック面倒すぎ。
とくにjava?

58 :57:2017/05/22(月) 20:50:49.74 ID:OyhChPaS.net
世の中にはnull結合演算子なんてものもあるのか。

59 :デフォルトの名無しさん:2018/05/23(水) 22:50:11.81 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

0SKW4

60 :デフォルトの名無しさん:2018/07/04(水) 23:18:22.40 ID:gFgZc5FG.net
LL7

総レス数 60
15 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★