Skip to main content
Commonmark migration
Source Link

#Haskell, 156 bytes

Haskell, 156 bytes

h 0="O" h n|n>0=' ':c n "/\\ "++"\nO"++c(n-1)" /"++" O\n "++c n "\\/ " |0<1=" O\n/ \\\n"++c(-n-1)"\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 

#Haskell, 156 bytes

h 0="O" h n|n>0=' ':c n "/\\ "++"\nO"++c(n-1)" /"++" O\n "++c n "\\/ " |0<1=" O\n/ \\\n"++c(-n-1)"\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 

Haskell, 156 bytes

h 0="O" h n|n>0=' ':c n "/\\ "++"\nO"++c(n-1)" /"++" O\n "++c n "\\/ " |0<1=" O\n/ \\\n"++c(-n-1)"\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 
deleted 1 character in body
Source Link

#Haskell, 159156 bytes

h 0="O" h n|n>=0='n|n>0=' ':c n "/\\ "++"\nO"++c(n-1)" /"++" O\n "++c n "\\/ " |True="|0<1=" O\n/ \\\n"++c(-n-1)"\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 

#Haskell, 159 bytes

h 0="O" h n|n>=0=' ':c n "/\\ "++"\nO"++c(n-1)" /"++" O\n "++c n "\\/ " |True=" O\n/ \\\n"++c(-n-1)"\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 

#Haskell, 156 bytes

h 0="O" h n|n>0=' ':c n "/\\ "++"\nO"++c(n-1)" /"++" O\n "++c n "\\/ " |0<1=" O\n/ \\\n"++c(-n-1)"\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 
deleted 4 characters in body
Source Link

#Haskell, 163159 bytes

h 0="O" h n|n>=0=' ':c n "/\\ "++"\nO"++c (n-1) " /"++" O\n "++c n "\\/ " |True=" O\n/ \\\n"++c (-n-1) "\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 

#Haskell, 163 bytes

h 0="O" h n|n>=0=' ':c n "/\\ "++"\nO"++c (n-1) " /"++" O\n "++c n "\\/ " |True=" O\n/ \\\n"++c (-n-1) "\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 

#Haskell, 159 bytes

h 0="O" h n|n>=0=' ':c n "/\\ "++"\nO"++c(n-1)" /"++" O\n "++c n "\\/ " |True=" O\n/ \\\n"++c(-n-1)"\\ /\n \\\n/ \\\n"++"\\ /\n O" c x=concat.replicate x 

You can then write it as:

*Main> putStrLn $ h 1 /\ O O \/ *Main> putStrLn $ h 0 O *Main> putStrLn $ h (-1) O / \ \ / O *Main> putStrLn $ h 3 /\ /\ /\ O / / O \/ \/ \/ *Main> putStrLn $ h (-3) O / \ \ / \ / \ \ / \ / \ \ / O *Main> 
Source Link
Loading