Pure言語例文 FizzBuzz
例文になるのかどうかはわかりませんが、とりあえず、PureでFizzBuzzをやってみました。
こんなコードです。
check x = "FizzBuzz" if ~(x mod 3) && ~(x mod 5); = "Fizz" if ~(x mod 3); = "Buzz" if ~(x mod 5); = x otherwise; fizzbuzz n = map check (1..n);
演算子「mod」は、割り算の余りを計算します。割りきれた場合は0が返るので、演算子「~」を使って反転します。(0はfalse、それ以外はtrueになるようです。)
関数「fizzbuzz」の定義では、「map check (1..n)」としていますが、演算子「..」は、ある数からある数までの連続した数のリストを作ります。
「..」は演算子なので、「(..) 10 15」として「[10,11,12,13,14,15]」を作るようなこともできます。