Sierpinski carpet: Difference between revisions
m
→{{header|AppleScript}}
(Added Fennel.) |
|||
Line 327:
(ES5 Functional version)
<lang AppleScript>
-- sierpinskiCarpet :: Int -> [[Bool]]
Line 341:
-- inCarpet :: Int -> Int -> Bool
on inCarpet(x, y)
if (
true
else
not ((1 = x mod 3
(1 = y mod 3
inCarpet(x div 3, y div 3)
end if
Line 363:
on run
-- Carpets of orders 1, 2, 3
Line 376:
end run
-- showCarpet :: Int -> String
on showCarpet(n)
-- showRow :: [Bool] -> String
script showRow
Line 403:
-- enumFromTo :: Int -> Int -> [Int]
on enumFromTo(m, n)
if m
set
end repeat▼
xs
else
end if
▲ repeat with i from m to n by d
▲ set end of lst to i
▲ end repeat
return lst▼
end enumFromTo
-- intercalate :: Text -> [Text] -> Text▼
on intercalate(strText, lstText)▼
set {dlm, my text item delimiters} to {my text item delimiters, strText}▼
set strJoined to lstText as text▼
set my text item delimiters to dlm▼
end intercalate▼
-- map :: (a -> b) -> [a] -> [b]
Line 431 ⟶ 440:
end map
▲-- intercalate :: Text -> [Text] -> Text
▲on intercalate(strText, lstText)
▲ set {dlm, my text item delimiters} to {my text item delimiters, strText}
▲ set strJoined to lstText as text
▲ set my text item delimiters to dlm
▲end intercalate
-- Lift 2nd class handler function into 1st class script wrapper
|