[過去ログ] 次世代言語11[Rust Swift TypeScript Dart] (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
764: デフォルトの名無しさん [] 2018/06/26(火) 18:29:07.51 ID:SLOKSalZ(1/11) AAS
>>677677(1): デフォルトの名無しさん [sage] 2018/06/23(土) 08:33:57.94 ID:XcMMhDbo(1/2) AAS
>>674
swiftかな。swiftはにんきあるよな。俺には理解できないけど。関数型に興味を持つきっかけとnull安全な言語仕様の有効性を教えてくれた
外部リンク[html]:benchmarksgame-team.pages.debian.net
Swiftは遅い
767(1): デフォルトの名無しさん [] 2018/06/26(火) 19:56:14.90 ID:SLOKSalZ(2/11) AAS
あとSwiftでパターンマッチ使うときさ「case let」の「let」ってなんの意味有るの?
そもそも「case」自体いらないよね。
Rustみたいに簡潔な構文にしない意味がわからん。
770(1): デフォルトの名無しさん [] 2018/06/26(火) 20:23:51.43 ID:SLOKSalZ(3/11) AAS
Scalaも構文ダメだけど、Dottyでかなり改善されてるみたいだね
外部リンク:dotty.epfl.ch
771(1): デフォルトの名無しさん [] 2018/06/26(火) 20:32:08.64 ID:SLOKSalZ(4/11) AAS
>>768>>769冗長な構文にするなってこと。
```Rust
match number {
1 => "one",
2 => "two",
_ => "else",
}
```
```swift
switch number {
case 1: return "one"
case 2: return "two"
default: return "else"
}
```
777(1): デフォルトの名無しさん [] 2018/06/26(火) 21:18:39.20 ID:SLOKSalZ(5/11) AAS
>>774Rust: 外部リンク:play.rust-lang.org
Swift: 外部リンク:ideone.com
この場合Rustのようにlet書く必要ないと思うんだけど?
791(1): デフォルトの名無しさん [] 2018/06/26(火) 22:12:37.76 ID:SLOKSalZ(6/11) AAS
>>785
varがあるのはわかるけど、そこでvarを使う場面てあるのかね?
外部リンク:ideone.com
```swift
case let .B(n):
let t = n+1
return String(t)
```
だって変わらんし
792: デフォルトの名無しさん [] 2018/06/26(火) 22:24:29.16 ID:SLOKSalZ(7/11) AAS
>>785
それにvarのときだけつければ良くないかね,Rustだと「mut」つけるだけだけど
外部リンク:play.rust-lang.org
```rust
AB::B(mut n) => {
n+=1;
n.to_string().into()
}
```
797(1): デフォルトの名無しさん [] 2018/06/26(火) 22:49:48.96 ID:SLOKSalZ(8/11) AAS
>>793793(1): デフォルトの名無しさん [sage] 2018/06/26(火) 22:33:54.59 ID:wjruZlWa(2/3) AAS
>>791
変数束縛にletとvarがある言語において、switchのときだけ変数束縛を特別扱いしてletやvarを省略できるのは一貫性が無いという考え方もある
そういう見方もあるけどね
でも
```
case let .B(x): return String(n)
```
と
```
case .B(let x): return String(n)
```
の違いってなんなのかね、違いがないなら「let」省略できたほうがいいように思うが
798: デフォルトの名無しさん [] 2018/06/26(火) 22:51:21.79 ID:SLOKSalZ(9/11) AAS
>>797
訂正: xじゃなくてn
799(1): デフォルトの名無しさん [] 2018/06/26(火) 22:57:45.92 ID:SLOKSalZ(10/11) AAS
>>794794(1): デフォルトの名無しさん [sage] 2018/06/26(火) 22:39:59.15 ID:wjruZlWa(3/3) AAS
それに短ければ良いなら、rustのlet mulよりswiftのvarの方が短い
パターンマッチより変数宣言方が良く出て来るしね
短いことがいいんじゃないよ、理由なく冗長な構文がだめなだけ。
Rustはわざと「var」とかじゃなく「let mut」にしている理由は、通常イミュータブルを使うようにするため。
ミュータブルの構文が長いことでプログラマがイミュータブルをより一般的に使うよう促す効果がある。
802(2): デフォルトの名無しさん [] 2018/06/26(火) 23:29:44.42 ID:SLOKSalZ(11/11) AAS
>>801801(1): デフォルトの名無しさん [sage] 2018/06/26(火) 23:12:38.14 ID:SIV9Ebow(4/6) AAS
>>799みたいなのは設計当初は綺麗なんだけど
後から、例えばD言語のconst/immutableみたいな選択肢を追加してしまうと罠に化けそうじゃない?(妄想だけど)
その点元が冗長ならある程度耐性がある、という話。後から省略可能にする方はできるしな
Dは全然知らないけど、調べたらデフォルトがミュータブルで、immutableをつけるとイミュータブルになるのか。
```
int x = 3; // ミュータブル
immutable int x = 3; // イミュータブル
auto s = "hello"; // イミュータブル
```
これはひどいな
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s