1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
module Language.Brainfuck.Examples where
-- Example Programs
helloWorld, bottles, helloum, sort, toupper :: String
helloWorld =
">+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++++>-]"++
"<.#>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]>++++++++["++
"<++++>-]<+.[-]++++++++++."
-- works now, thanks to int-e for explaining the BF spec to me
bottles =
"99 Bottles of Beer in Urban Mueller's BrainF*** (The actual"++
"name is impolite)"++
""++
"by Ben Olmstead"++
""++
"ANSI C interpreter available on the internet; due to"++
"constraints in comments the address below needs to have the"++
"stuff in parenthesis replaced with the appropriate symbol:"++
""++
"http://www(dot)cats(dash)eye(dot)com/cet/soft/lang/bf/"++
""++
"Believe it or not this language is indeed Turing complete!"++
"Combines the speed of BASIC with the ease of INTERCAL and"++
"the readability of an IOCCC entry!"++
""++
">+++++++++[<+++++++++++>-]<[>[-]>[-]<<[>+>+<<-]>>[<<+>>-]>>>"++
"[-]<<<+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+<"++
"-]<<-<-]+++++++++>[<->-]>>+>[<[-]<<+>>>-]>[-]+<<[>+>-<<-]<<<"++
"[>>+>+<<<-]>>>[<<<+>>>-]>[<+>-]<<-[>[-]<[-]]>>+<[>[-]<-]<+++"++
"+++++[<++++++<++++++>>-]>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-"++
"]<<<<<<.>>[-]>[-]++++[<++++++++>-]<.>++++[<++++++++>-]<++.>+"++
"++++[<+++++++++>-]<.><+++++..--------.-------.>>[>>+>+<<<-]>"++
">>[<<<+>>>-]<[<<<<++++++++++++++.>>>>-]<<<<[-]>++++[<+++++++"++
"+>-]<.>+++++++++[<+++++++++>-]<--.---------.>+++++++[<------"++
"---->-]<.>++++++[<+++++++++++>-]<.+++..+++++++++++++.>++++++"++
"++[<---------->-]<--.>+++++++++[<+++++++++>-]<--.-.>++++++++"++
"[<---------->-]<++.>++++++++[<++++++++++>-]<++++.-----------"++
"-.---.>+++++++[<---------->-]<+.>++++++++[<+++++++++++>-]<-."++
">++[<----------->-]<.+++++++++++..>+++++++++[<---------->-]<"++
"-----.---.>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>>+++"++
"+[<++++++>-]<--.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<."++
"><+++++..--------.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++"++
"++++++++++++.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<++"++
"+++++++>-]<--.---------.>+++++++[<---------->-]<.>++++++[<++"++
"+++++++++>-]<.+++..+++++++++++++.>++++++++++[<---------->-]<"++
"-.---.>+++++++[<++++++++++>-]<++++.+++++++++++++.++++++++++."++
"------.>+++++++[<---------->-]<+.>++++++++[<++++++++++>-]<-."++
"-.---------.>+++++++[<---------->-]<+.>+++++++[<++++++++++>-"++
"]<--.+++++++++++.++++++++.---------.>++++++++[<---------->-]"++
"<++.>+++++[<+++++++++++++>-]<.+++++++++++++.----------.>++++"++
"+++[<---------->-]<++.>++++++++[<++++++++++>-]<.>+++[<----->"++
"-]<.>+++[<++++++>-]<..>+++++++++[<--------->-]<--.>+++++++[<"++
"++++++++++>-]<+++.+++++++++++.>++++++++[<----------->-]<++++"++
".>+++++[<+++++++++++++>-]<.>+++[<++++++>-]<-.---.++++++.----"++
"---.----------.>++++++++[<----------->-]<+.---.[-]<<<->[-]>["++
"-]<<[>+>+<<-]>>[<<+>>-]>>>[-]<<<+++++++++<[>>>+<<[>+>[-]<<-]"++
">[<+>-]>[<<++++++++++>>>+<-]<<-<-]+++++++++>[<->-]>>+>[<[-]<"++
"<+>>>-]>[-]+<<[>+>-<<-]<<<[>>+>+<<<-]>>>[<<<+>>>-]<>>[<+>-]<"++
"<-[>[-]<[-]]>>+<[>[-]<-]<++++++++[<++++++<++++++>>-]>>>[>+>+"++
"<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>[-]>[-]++++[<++++++++>"++
"-]<.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.><+++++..---"++
"-----.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++++++++++++++"++
".>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<+++++++++>-]<-"++
"-.---------.>+++++++[<---------->-]<.>++++++[<+++++++++++>-]"++
"<.+++..+++++++++++++.>++++++++[<---------->-]<--.>+++++++++["++
"<+++++++++>-]<--.-.>++++++++[<---------->-]<++.>++++++++[<++"++
"++++++++>-]<++++.------------.---.>+++++++[<---------->-]<+."++
">++++++++[<+++++++++++>-]<-.>++[<----------->-]<.+++++++++++"++
"..>+++++++++[<---------->-]<-----.---.+++.---.[-]<<<]"++
"@"
helloum =
"++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.@"
-- can't figure this one out either...
sort =
"Here is a Brainf*** program that bubblesorts its input and spits it out:"++
">>>>>,+[>>>,+]<<<[<<<"++
"[>>>[-<<<-<+>[>]>>]<<<[<]>>"++
"[>>>+<<<-]<[>+>>>+<<<<-]"++
"<<]>>>[-.[-]]>>>[>>>]<<<]"
toupper =
",----------[----------------------.,----------]"
{-
Example optimized programs:
++++[>++++++++<-]>[.+]
[(0,IncByteBy 4), (1,SetIpTo 7), (2,IncPtrBy 1),
(3,IncByteBy 8), (4,IncPtrBy (-1)), (5,IncByteBy (-1)),
(6,SetIpTo (-1)), (7,IncPtrBy 1), (8,SetIpTo 12),
(9,OutputByte), (10,IncByteBy 1), (11,SetIpTo (-8)),
(12,Halt)
]
[[]]
[(0,SetIpTo 4),
(1,SetIpTo 3),
(2,SetIpTo (-1)),
(3,SetIpTo 0),
(4,Halt)
]
-}
|