Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 1.13 KB

File metadata and controls

45 lines (36 loc) · 1.13 KB

condマクロ 一連の条件とそれに対応するコードを並べられる 最初に真となる条件に対応するコードが実行される

直近の結果をリストのヘッドに追加 最後にリストを逆順にするパターン

> c "control/fizzbuzz.ex"
[FizzBuzz]
> FizzBuzz.upto(20)
[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14,
 "FizzBuzz", 16, 17, "Fizz", 19, "Buzz"]

リストをreverseしないパターン

"control/fizzbuzz1.ex"
[FizzBuzz]
> FizzBuzz.upto(20)
[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14,
 "FizzBuzz", 16, 17, "Fizz", 19, "Buzz"]

1からnまでの数字を対応する文字列に変換する

> c "control/fizzbuzz2.ex"
[FizzBuzz]
> FizzBuzz.upto(20)
[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14,
 "FizzBuzz", 16, 17, "Fizz", 19, "Buzz"]

関数呼び出しの中でパターンマッチを利用する

> c "control/fizzbuzz3.ex"
[FizzBuzz]
> FizzBuzz.upto(20)
[1, 2, "Fizz", 4, "Buzz", "Fizz", 7, 8, "Fizz", "Buzz", 11, "Fizz", 13, 14,
 "FizzBuzz", 16, 17, "Fizz", 19, "Buzz"]