wciąż się uczę Haskell, a ja zastanawiałem się, czy jest tam mniej gadatliwy sposób wyrazić za pomocą poniższego komunikatu 1 wiersz kodu:FizzBuzz oczyszczania
map (\x -> (x, (if mod x 3 == 0 then "fizz" else "") ++
if mod x 5 == 0 then "buzz" else "")) [1..100]
produkuje: [(1,""),(2,""),(3,"fizz"),(4,""),(5,"buzz"),(6,"fizz"),(7,""),(8,""),(9,"fizz"),(10,"buzz"),(11,""),(12,"fizz"),(13,""),(14,""),(15,"fizzbuzz"),(16,""),(17,""),(18,"fizz"),(19,""),(20,"buzz"),(21,"fizz"),(22,""),(23,""),(24,"fizz"),(25,"buzz"),(26,""),(27,"fizz"),(28,""),(29,""),(30,"fizzbuzz")
itp
Po prostu mam wrażenie, że walczę ze składnią bardziej, niż powinienem. Widziałem inne pytania na ten temat w Haskell, ale szukam najbardziej optymalnego sposobu wyrażenia tego w jednym oświadczeniu (próbując zrozumieć, jak lepiej pracować ze składnią).
http://www.haskell.org/haskellwiki/index.php?title = & search = fizzbuzz & fulltext = Wyszukaj –
@ Sergio, nie bądź głupi. Potrzebne są tylko 2 doktoraty: P –