ヽ(´・肉・`)ノログ

How do we fighting without fighting?

すごいE本をElixirでやる(3)

つづき

1 章

1.2 Erlang の基礎をいくつか

アトム

/Users/niku/projects/elixir% iex
Erlang/OTP 17 [erts-6.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (0.14.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :atom
:atom
iex(2)> :atoms_rule
:atoms_rule
iex(3)> :atoms_rule@erlang
:atoms_rule@erlang
iex(4)> :"Atoms can be cheated!"
:"Atoms can be cheated!"
iex(5)> :atom = :"atom"
:atom

ブール代数と比較演算子

Elixir の演算子は 3 Basic operators を見るとわかりやすい.

おまけ.

Elixir ではブール代数以外でも扱える &&|| が用意されている.その場合は falsenil だけが偽として扱われる.

/Users/niku/projects/elixir% iex
Erlang/OTP 17 [erts-6.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (0.14.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> true and false
false
iex(2)> false or true
true
iex(3)> true xor false
iex:3: warning: Kernel.xor/2 is deprecated
true
iex(4)> not false
true
iex(5)> not (true and true)
false
iex(6)> 5 === 5
true
iex(7)> 1 === 0
false
iex(8)> 1 !== 0
true
iex(9)> 5 === 5.0
false
iex(10)> 5 == 5.0
true
iex(11)> 5 != 5.0
false
iex(12)> 1 < 2
true
iex(13)> 1 < 1
false
iex(14)> 1 >= 1
true
iex(15)> 1 =< 1
** (SyntaxError) iex:15: syntax error before: '<'

iex(15)> 1 <= 1
true
iex(16)> 5 + :llama
** (ArithmeticError) bad argument in arithmetic expression
    :erlang.+(5, :llama)
iex(16)> 5 === true
false
iex(17)> 0 == false
false
iex(18)> 1 < false
true
iex(19)> 1 and 2
** (ArgumentError) argument error: 1

iex(20)> 1 && 2
2
iex(21)> 1 || 2
1
iex(21)> false || 2
2
このエントリーをはてなブックマークに追加