技術

Concurrent CleanでFizzBuzz

“Concurrent Clean FizzBuzz”で検索して来られる方が最近何人かいらっしゃるので、期待にこたえるべく?Concurrent CleanでFizzBuzz問題を解いてみました。

Cleanは久しぶりで色々なことを忘れてたので、今日はとりあえず的な書き方で作ってみました。
無駄にラムダ関数を使ってますが、ラムダ関数の定義のみでFizzBuzzのアルゴリズムを表現しようとした – つまり1行で書こうと横着した – 名残です。

module test

import StdEnv, StdDebug

Start = map (\x = fizzbuzz x) [1..100]

fizzbuzz x
|(x rem 3 == 0 && x rem 5 == 0) = "FizzBuzz"
|(x rem 3 == 0) = "Fizz"
|(x rem 5 == 0) = "Buzz"
|otherwise = toString x

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です



※画像をクリックして別の画像を表示

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください