[過去ログ] 次世代言語11[Rust Swift TypeScript Dart] (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
764: デフォルトの名無しさん [] 2018/06/26(火) 18:29:07.51 ID:SLOKSalZ(1/11) AAS
>>677
677(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
768(1): デフォルトの名無しさん [sage] 2018/06/26(火) 20:18:13.51 ID:ouGSlrDx(1) AAS
簡潔って記号だらけにしろってこと?
perlでも使ってれば
>>769
769(1): デフォルトの名無しさん [sage] 2018/06/26(火) 20:22:26.08 ID:wzcThIhT(1) AAS
Rustの構文が簡潔……??
冗長な構文にするなってこと。

```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
>>774
774(1): デフォルトの名無しさん [sage] 2018/06/26(火) 20:40:42.88 ID:wjruZlWa(1/3) AAS
>>767
case varがあるからでは
Rust: 外部リンク:play.rust-lang.org
Swift: 外部リンク:ideone.com

この場合Rustのようにlet書く必要ないと思うんだけど?
791
(1): デフォルトの名無しさん [] 2018/06/26(火) 22:12:37.76 ID:SLOKSalZ(6/11) AAS
>>785
785(2): デフォルトの名無しさん [] 2018/06/26(火) 21:49:47.34 ID:jiePcum7(2/2) AAS
>>777
だからletとvarがあるんだって
let: 外部リンク:ideone.com
var: 外部リンク:ideone.com

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
>>793
793(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
>>794
794(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
>>801
801(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