どうも、靖宗です。
今回は基本演算子について。
型のところで出てきてるのでサクッと終わりそう。
おさらい
# 四則演算 + - * / # 割り算の関数 div/2 rem/2 # リスト連結 ++ --
上記は前回までに出てきてます。
文字列の連結
文字列の連結には<>
が使われるそうです。Hello worldの時にみたやつだ!
iex> "foo" <> "bar" "foobar"
論理演算子
or and not
or
and
not
。Pythonっぽい。(今日調べてて知りましたが、Rubyの方が類似点があるみたい?Rubyは知らない・・・)
論理演算子は論理値(boolean)以外渡すと怒られる。
iex> 1 and true ** (BadBooleanError) expected a boolean on left-side of "and", got: 1
論理値以外受け取れる演算子
||
&&
!
が該当。falseとnil以外をtrueとする。他の言語とおなじっぽい。
空のリストとかも?
iex(12)> [] [] iex(13)> 1 || [] 1 iex(14)> 0 || [] 0 iex(15)> false || [] [] iex(16)> true || [] true
空リストはnil扱いかな。
比較演算子
==
!=
===
!==
<=
>=
<
>
が該当。他の言語とほぼいっしょ。
===
とかはJavascriptっぽいかな。integerとfloatの比較とかに使う。
違う型の比較
iex> 1 < :atom
true
('ω')。o(????????????)
とりあえず下の関係性に従って評価されるみたい。覚えなくてもいいよって書いてある。
存在は知っておこう。
number < atom < reference < function < port < pid < tuple < map < list < bitstring
以上!
パターンマッチングについては次回。