Program > Haskell > Haskell入門 > 第1章 はじめてのHaskell
2022-01-24 (月) 公開
学習メモ
Haskell入門 関数型プログラミング言語の基礎と実践 本間 雅洋 技術評論社 2017-09-27 ¥3608 |
【Column】 静的型付けの限界 †
静的型付け言語でも型安全性を保証できない場合もあります。
(例)Javaの場合 †
1 |
|
これは、Javaの型システムが、3項演算子の第3項をこの場合は無視できることを判断できないために、コンパイルエラーが起きます。
Javaの三項演算子 †
- Java | 条件演算子(三項演算子)
https://www.javadrive.jp/start/ope/index13.html
条件演算子 (三項演算子)
条件演算子は 3 つの値を必要とする演算子で三項演算子とも呼ばれます。
条件式の真偽に応じて二つの値を返すことができ、あたかも if 文のような処理を行うことができます。
条件式 ? 式1 : 式2
条件式が true の場合は式1を評価した値を返します。
fales の場合は式2を評価した値を返します。
3 つの式をそれぞれ指定し、式1と式2は評価した結果として何らかの値を返す必要があります。
- Javaで三項演算子はどこまで許されるか - Qiita
https://qiita.com/ikemo/items/f81f08055bb873b4d648
三項演算子を使っていいのは、単純なもののみに限られるのが自分の中での結論です。
(検証)paizaのオンライン実行環境で確認 †
- (Java) | ブラウザでプログラミング・実行ができる「オンライン実行環境」| paiza.IO
https://paiza.io/projects/LQ5zlCsbS9yS0lKBVEiRag?language=java
上記のJavaコードをコンパイルすると、エラーメッセージが出ます。
Main.java:7: error: incompatible types: bad type in conditional expression int result = true ? 123 : "ABC"; ^ String cannot be converted to int 1 error
静的型付け言語でも、型安全性を保証できない場合もあることを念頭において利用しましょう。