Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
93
Task/Thue-Morse/AppleScript/thue-morse-1.applescript
Normal file
93
Task/Thue-Morse/AppleScript/thue-morse-1.applescript
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
------------------------ THUE MORSE ----------------------
|
||||
|
||||
-- thueMorse :: Int -> String
|
||||
on thueMorse(nCycles)
|
||||
script concatBinaryInverse
|
||||
on |λ|(xs)
|
||||
script binaryInverse
|
||||
on |λ|(x)
|
||||
1 - x
|
||||
end |λ|
|
||||
end script
|
||||
|
||||
xs & map(binaryInverse, xs)
|
||||
end |λ|
|
||||
end script
|
||||
|
||||
intercalate("", ¬
|
||||
foldl(concatBinaryInverse, [0], ¬
|
||||
enumFromTo(1, nCycles)))
|
||||
end thueMorse
|
||||
|
||||
|
||||
--------------------------- TEST -------------------------
|
||||
on run
|
||||
|
||||
thueMorse(6)
|
||||
|
||||
--> 0110100110010110100101100110100110010110011010010110100110010110
|
||||
end run
|
||||
|
||||
|
||||
------------------------- GENERIC ------------------------
|
||||
|
||||
-- enumFromTo :: Int -> Int -> [Int]
|
||||
on enumFromTo(m, n)
|
||||
if m ≤ n then
|
||||
set lst to {}
|
||||
repeat with i from m to n
|
||||
set end of lst to i
|
||||
end repeat
|
||||
lst
|
||||
else
|
||||
{}
|
||||
end if
|
||||
end enumFromTo
|
||||
|
||||
|
||||
-- foldl :: (a -> b -> a) -> a -> [b] -> a
|
||||
on foldl(f, startValue, xs)
|
||||
tell mReturn(f)
|
||||
set v to startValue
|
||||
set lng to length of xs
|
||||
repeat with i from 1 to lng
|
||||
set v to |λ|(v, item i of xs, i, xs)
|
||||
end repeat
|
||||
return v
|
||||
end tell
|
||||
end foldl
|
||||
|
||||
|
||||
-- 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
|
||||
return strJoined
|
||||
end intercalate
|
||||
|
||||
|
||||
-- map :: (a -> b) -> [a] -> [b]
|
||||
on map(f, xs)
|
||||
tell mReturn(f)
|
||||
set lng to length of xs
|
||||
set lst to {}
|
||||
repeat with i from 1 to lng
|
||||
set end of lst to |λ|(item i of xs, i, xs)
|
||||
end repeat
|
||||
return lst
|
||||
end tell
|
||||
end map
|
||||
|
||||
|
||||
-- Lift 2nd class handler function into 1st class script wrapper
|
||||
-- mReturn :: Handler -> Script
|
||||
on mReturn(f)
|
||||
if class of f is script then
|
||||
f
|
||||
else
|
||||
script
|
||||
property |λ| : f
|
||||
end script
|
||||
end if
|
||||
end mReturn
|
||||
30
Task/Thue-Morse/AppleScript/thue-morse-2.applescript
Normal file
30
Task/Thue-Morse/AppleScript/thue-morse-2.applescript
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
on ThueMorse(sequenceLength)
|
||||
if (sequenceLength < 1) then return ""
|
||||
|
||||
script o
|
||||
property sequence : {0}
|
||||
end script
|
||||
|
||||
set counter to 1
|
||||
set cycleEnd to 1
|
||||
set i to 1
|
||||
repeat until (counter = sequenceLength)
|
||||
set end of o's sequence to ((item i of o's sequence) + 1) mod 2
|
||||
set counter to counter + 1
|
||||
if (i < cycleEnd) then
|
||||
set i to i + 1
|
||||
else
|
||||
set i to 1
|
||||
set cycleEnd to counter
|
||||
end if
|
||||
end repeat
|
||||
|
||||
set astid to AppleScript's text item delimiters
|
||||
set AppleScript's text item delimiters to ""
|
||||
set sequence to o's sequence as text
|
||||
set AppleScript's text item delimiters to astid
|
||||
|
||||
return sequence
|
||||
end ThueMorse
|
||||
|
||||
return linefeed & ThueMorse(64) & (linefeed & ThueMorse(65))
|
||||
3
Task/Thue-Morse/AppleScript/thue-morse-3.applescript
Normal file
3
Task/Thue-Morse/AppleScript/thue-morse-3.applescript
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
"
|
||||
0110100110010110100101100110100110010110011010010110100110010110
|
||||
01101001100101101001011001101001100101100110100101101001100101101"
|
||||
Loading…
Add table
Add a link
Reference in a new issue