๐Ÿ”™ Back to Top

Mon Aug 26 09:51:59 JST 2013

J่จ€่ชž, FizzBuzz

ใพใŸJ่จ€่ชžใง้Šใถ. FizzBuzz ๆ›ธใใชใฉใ—ใฆใฟใ‚ˆใ†.

J่จ€่ชžใงifใ‚„forใชใฉใฎๅˆถๅพกๆง‹้€ ใฏ็”จๆ„ใฏใ•ใ‚Œใฆใ‚‹ใ‘ใฉ ใใ‚Œใ‚’ไฝฟใ†ใฎใฏJ่จ€่ชžใ‚‰ใ—ใใชใ€œใ„ ใจใ„ใ†ใฉใ“ใ‹ใซๆ›ธใ„ใฆใ‚ใฃใŸๆฐ—ใŒใ™ใ‚‹ใฎใงไฝฟใ‚ใชใ„ใ“ใจใซใ—ใ‚ˆใ†

idx n | n `mod` 15 == 0 = 3
      | n `mod` 5 == 0 = 2
      | n `mod` 3 == 0 = 1
      | n `mod` 1 == 0 = 0

fizzbuzz n = [show n, "Fizz", "Buzz", "FizzBuzz"] !! (idx n)

main = print $ map fizzbuzz [1..100]

ๆ€ใ„ใคใ„ใŸใฎใฏ๏ผŒใ“ใ†ใ„ใ†ใ‚„ใ‚Šๆ–น

idx =: (0=5|]) + 2 * 0=3|]

ๅคงๅค‰ใใฎใพใพใงใ‚ใ‚‹ ใ‚‚ใฃใจJใ‚‰ใ—ใๆ›ธใในใใ‹ใ‚‚ใจ

idx =: +/ @ (1 2 # 0=3 5 |])

ๆ›ธใ„ใฆใฆใ‚ใ‹ใฃใŸใ“ใจใซ๏ผŒJใงใฏๅ…จใฆใฏๅณ็ตๅˆใจๆ€ใฃใฆใ„ใŸใ‘ใ‚Œใฉ๏ผŒ @ใฎใ‚ˆใ†ใชๆŽฅ็ถš่ฉžใฏไพ‹ๅค–ใ‚‰ใ—ใ„ ่ฉฐใ‚ใ‚Œใฐ๏ผŒ็Ÿญใใฏใชใฃใฆใ‚‹ใ‹๏ผŸใงใ‚‚ๅˆ†ใ‹ใ‚Šใซใใใฏ๏ผŒใชใฃใŸ

   table =: 13 : '(y; ''Fizz''; ''Buzz''; ''FizzBuzz'')'
   table
(<;._1 ' Fizz Buzz FizzBuzz') ;~ ]

13 : 'hogehoge' ใจใ„ใ†ๆ˜Ž็คบ็š„ๅฎš็พฉใ‚’ใ™ใ‚Œใฐ๏ผŒๆ–ฐใ—ใ„ๆผ”็ฎ—ๅญใ‚’ๅญฆในใ‚‹

   table 0
โ”Œโ”€โ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚0โ”‚Fizzโ”‚Buzzโ”‚FizzBuzzโ”‚
โ””โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
   table 1
โ”Œโ”€โ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚1โ”‚Fizzโ”‚Buzzโ”‚FizzBuzzโ”‚
โ””โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

   fizzbuzz =: idx { table

ใงใใŸ๏ผ

   fizzbuzz"0 (i.6)
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”ฌโ”€โ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ฌโ”€โ”€โ”€โ”€โ”
โ”‚FizzBuzzโ”‚1โ”‚2โ”‚Buzzโ”‚4โ”‚Fizzโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”ดโ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”ดโ”€โ”€โ”€โ”€โ”˜

ๆ–‡ๅญ—ๅˆ—ใ‚’ๅ…ฅใ‚Œใ‚‹ใŸใ‚ใซใƒœใƒƒใ‚ฏใ‚นไฝฟใฃใŸใ‘ใฉ Open (ใ‚ขใƒณใƒœใƒƒใ‚ฏใ‚น)ใ™ใ‚‹ใฎใฏ > ใจใ„ใ†ๆผ”็ฎ—ๅญใ ใฃใŸใฏใš

   > fizzbuzz"0 (i.6)
|domain error
|       > fizzbuzz"0(i.6)

ใ‚ใƒผ๏ผŒOpenใฏใƒœใƒƒใ‚ฏใ‚นใ‹ใ‚‰้…ๅˆ—ใซใ™ใ‚‹ใ‘ใฉ๏ผŒ้…ๅˆ—ใฃใฆใฎใฏไธญใฎๅž‹ใŒๆƒใฃใฆใ‚‹ ใฎใŒๅ‰ๆใชใฎใ ใฃใŸ๏ผŽ

": ใฏๆ•ดๆ•ฐใ‚’ๆ–‡ๅญ—ๅˆ—ใซๅค‰ๆ›ใ™ใ‚‹

   table =: 13 : '(": y); ''Fizz''; ''Buzz''; ''FizzBuzz'' '
   table
(<;._1 ' Fizz Buzz FizzBuzz') ;~ ":
   fizzbuzz 24
Fizz
   fizzbuzz"0 (i.6)
FizzBuzz
1
2
Fizz
4
Buzz

ใชใ‚“ใ‹ๅ‹ๆ‰‹ใซๆ”น่กŒใ•ใ‚Œใฆ่กจ็คบใ•ใ‚Œใฆใ‚‹ใฎใŒๆ€ชใ—ใ„ใ‘ใฉ๏ผŒใงใใŸ๏ผ


ใ“ใฎ (<;._1 ' Fizz Buzz FizzBuzz') ;~ ": ใซใคใ„ใฆใฏ
http://www.jsoftware.com/help/dictionary/d331.htm

_1 ใจใ„ใ†ๆ•ฐๅญ—ใซไธ€่ˆฌใฎๆ„ๅ‘ณใฏใชใ„๏ผŸ ใŸใ  m ;. _1 ใฎๅ ดๅˆ๏ผŒ ' hoge fuga' ใจใ„ใ†ๆ–‡ๅญ—ๅˆ—ใ‚’ hoge , fuga ใซๅˆ†ๅ‰ฒใ—ใฆ๏ผŒใใ‚Œใžใ‚Œใซ m ใ‚’้ฉ็”จใ—ใฆ่ฟ”ใ™๏ผŒใจใ„ใ†ใ ใ‘ใ‚‰ใ—ใ„

Mon Aug 26 11:25:46 JST 2013

ๆ—ฅ่จ˜

2013/8/24 (Sat.) ใซไธŠ้‡Ž๏ผŒๅ›ฝ็ซ‹็ง‘ๅญฆๅš็‰ฉ้คจใงใ€Œๆทฑๆตทใ€ใจใ„ใ†ๅฑ•็คบใ‚’่ฆ‹ใพใ—ใŸ ใ“ใฎๆ—ฅไป˜ใฏๅนพๅˆ†ใ‹ๆ„ๅ‘ณใ‚’ๆŒใฃใฆใ„ใ‚‹ใ“ใจใ‚’ใƒกใƒขใ—ใฆใŠใใพใ™

่ฟฝ่จ˜ (Sun Jan 24 00:44:40 JST 2016)

ๆ„ๅ‘ณใŒๅ…จใๆ€ใ„ๅ‡บใ›ใชใ„.