[過去ログ] 次世代言語13 Go Rust Swift Kotlin TypeScript (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
279: デフォルトの名無しさん [sage] 2018/09/01(土) 12:11:17.71 ID:Lo8welT8(1/5) AAS
pythonの場合、 a < b という式の型がboolなのに (a < b) < c ができてしまうというのが
非常に分かりにくいね。なんというか、むりやり捻じ込んだ感。
301: デフォルトの名無しさん [sage] 2018/09/01(土) 20:07:36.43 ID:Lo8welT8(2/5) AAS
Iconという言語だとこれが、a < b という式は成功した場合の値がbになるから a < b < c が
自然に実現できるんだよな。
304(1): デフォルトの名無しさん [sage] 2018/09/01(土) 20:25:39.05 ID:Lo8welT8(3/5) AAS
>>302302(1): デフォルトの名無しさん [sage] 2018/09/01(土) 20:13:43.79 ID:8XWt4TWp(8/8) AAS
>>300
じゃあ関数呼び出し式 (f)(a, b) はどう解釈する?
君のいう正しい解釈のように ((f)(a))(b) と解釈する言語も実際に存在するけど、あまり一般的ではないよね
二項演算子 a < b と三項演算子 a < b < c が同時に存在するというイメージなんだろうか。
a < b がコンテキストによってboolを返すかbを返すか変化するという方がまだ無理がないな。
308(1): デフォルトの名無しさん [sage] 2018/09/01(土) 21:36:47.04 ID:Lo8welT8(4/5) AAS
>>307307(1): デフォルトの名無しさん [sage] 2018/09/01(土) 20:56:58.84 ID:1LBe8Cyr(1) AAS
>>304
C言語的な演算子の概念に拘るなら、比較式はn項演算だと考えれば理解しやすいかな
実際scalaやF#のmatchとかRubyのifとかはn項演算の例だし、そんなに珍しいもんじゃないよ
構文解析の難易度の話なんだけど、matchなどといった開始語を欠いているうえに
<=や>など他の演算子との混在も考慮しなければならないとなったら、かなり
困難なものになる思うが。
313(1): デフォルトの名無しさん [sage] 2018/09/01(土) 22:26:51.47 ID:Lo8welT8(5/5) AAS
>>289289(2): デフォルトの名無しさん [sage] 2018/09/01(土) 19:34:46.46 ID:8XWt4TWp(4/8) AAS
>>285
ineqop ::= ('<' | '<=' | '>' | '>=')
ineqexpr ::= shiftexpr { ineqop shiftexpr }
みたいに定義すりゃいいだけだろ
はshiftexprの定義がないんで厳密なところがわからんけど、後者のshiftexprは
ineqexprじゃないの?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.221s*