Script Library: 1238 scripts
 

bf.r

REBOL [ Title: "Brainfuck" Author: "John Niclasen" Date: 21-Mar-2009 File: %bf.r Purpose: { REBOL implementation of this language: http://en.wikipedia.org/wiki/Brainfuck bf is 232 bytes compressed (see end of script). } ] bf: func [s] [ p: make string! 3e4 insert/dup p #{00} 3e4 while [not tail? s] [ switch s/1 [ #">" [p: next p s: next s] #"<" [p: back p s: next s] #"+" [p/1: either p/1 = 255 [#{00}][p/1 + 1] s: next s] #"-" [p/1: either p/1 = 0 [#{ff}][p/1 - 1] s: next s] #"." [prin p/1 s: next s] #"," [change p input s: next s] #"[" [ if p/1 = 0 [ c: 1 until [ switch first s: next s [ #"[" [c: c + 1] #"]" [c: c - 1] ] c = 0 ] ] s: next s ] #"]" [ c: 1 until [ switch first s: back s [ #"]" [c: c + 1] #"[" [c: c - 1] ] c = 0 ] ] ] ] ] bf: do decompress #{ 789C7590DD6E83300C855FC50B97FD01D6F506F5E741AC5CB02C2956698A8851 2B4D7BF739199BA0EA72E5F8F83B398E1BBCC1A0B1ABE0529F2D04EEC99F5E60 63DF807CB03DE71F43071D649F45F195DAB7865A8BFECAC035B547103ADC884D 03212F31530715DDBCBDB36061AC82CED42E09EFB5393F080B11F2B2024BDCD8 1EA4863DBC6EB7981ED5518405947ACAAC9E318510CE8DC4EA81580B21CBA5D1 697FA9D034B53F594945BE1B78A6A242727FF6A6821206CFD4FEEEECA80F1302 1321632625CE941E6F318D36D144CF52FDE8FF99A6CF8AA67A668A4F4CE57C03 F00D8B8FCD010000 }
halt ;; to terminate script if DO'ne from webpage