Skip to content

Commit 2b85e5a

Browse files
authored
Add Baklava in Purescript (#4105)
1 parent 7d045e4 commit 2b85e5a

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

archive/p/purescript/baklava.purs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
module Main where
2+
3+
import Prelude
4+
import Effect (Effect)
5+
import Effect.Console (log)
6+
7+
main :: Effect Unit
8+
main = do
9+
baklava (-10) 10
10+
11+
baklava :: Int -> Int -> Effect Unit
12+
baklava n ne
13+
| n > ne = pure unit
14+
| otherwise = do
15+
log (baklavaLine n)
16+
baklava (n + 1) ne
17+
18+
baklavaLine :: Int -> String
19+
baklavaLine n = do
20+
let numSpaces = abs n
21+
let numStars = 21 - 2 * numSpaces
22+
(repeatString numSpaces " ") <> (repeatString numStars "*")
23+
24+
abs :: Int -> Int
25+
abs n
26+
| n < 0 = -n
27+
| otherwise = n
28+
29+
repeatString :: Int -> String -> String
30+
repeatString n s
31+
| n < 1 = ""
32+
| otherwise = s <> repeatString (n - 1) s

0 commit comments

Comments
 (0)