Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-8081-120121-

Brainfuck in SICP

Name: Anonymous 2008-12-04 2:23

(define brainfuck #f)
(define bf-program "+-")
(define (alist-set! alist name value)
   (let ((bucket (assq name alist)))
      (if bucket
          (begin
            (set-cdr! bucket value)
            alist)
      (cons (cons name value) alist))))
(let*
   (
    (bf-tape ())
    (bf-tape-ptr 0)
    ;(bf-tape-value 0);; int represents value under tape pointer
    (bf-instruction-ptr 0)
    (bf-instruction-value (string-ref bf-program bf-instruction-ptr))
    (bf-continuation #t)
    (incr?  (lambda () (char=? bf-instruction-value (integer->char 43))))
    (decr?  (lambda () (char=? bf-instruction-value (integer->char 45))))
    (braco? (lambda () (char=? bf-instruction-value (integer->char 91))))
    (bracc? (lambda () (char=? bf-instruction-value (integer->char 93))))
    (left?  (lambda () (char=? bf-instruction-value (integer->char 60))))
    (right? (lambda () (char=? bf-instruction-value (integer->char 62))))
    (print? (lambda () (char=? bf-instruction-value (integer->char 46))))
    (tib?   (lambda () (char=? bf-instruction-value (integer->char 44))))
    (eof?   (lambda () (char=? bf-instruction-value (integer->char 128))))
    (lookup (lambda () ((lambda (x) (if x x 0)) (assoc bf-tape-ptr bf-tape))))
    (set-instruction-ptr! (lambda (a) (set! bf-instruction-pointer a)))
    (inc-instruction-ptr! (lambda () (set-instruction-ptr! (+ bf-instruction-pointer 1))))
    (set-tape-ptr! (lambda (a) (set! bf-tape-pointer a)))
    (add-to-table!
      (lambda (a)
         (alist-set! bf-tape bf-tape-ptr a)))
    (right! (lambda () (set-tape-ptr! (+ bf-tape-pointer 1))))
    (left!  (lambda ()
               (set-instruction-ptr! ((lambda (x) (if (zero? x) 0 (- x 1))) bf-instruction-ptr))))
    (print! (lambda () (print (lookup))))
    (input! #t)
    (inc!   (lambda () (add-to-table! (+ (lookup) 1))))
    (dec!   (lambda () (add-to-table! (- (lookup) 1))))
    (open!  (lambda () (call/cc (lambda (rest) (set! bf-continuation rest)))))
    (clos!  (lambda () (if (zero? bf-tape-ptr) (bf-continuation) ))
    (right! (lambda ()
               (set-instruction-ptr! (+ bf-instruction-ptr 1))
               (set! bf-instruction-value (string-ref bf-program-ptr))))
    )
   (set! brainfuck
     (lambda ()
        (cond
          ;; disbatch
          ((incr?)  (inc!))
          ((decr?)  (dec!))
          ((right?) (right!))
          ((left?)  (left!))
          ((tib?)   (input!))
          ((print?) (print!))
          ((eof?)   #f)
          ((open?)
           (let (; copy continuation var and instruction-ptr var for the loop in brackets
                 (bf-continuation bf-continuation)
                 (bf-instruction-ptr bf-instruction-ptr))
              (open!);; copy current-continuation
              (inc-instruction-ptr!)
              (brainf_ck)))
          ((close?) (clos!))
          (else ()))
        (brainfuck))))


Something is not right. I will be combing through it as /prog/ reads this. Maybe /prog/ will what the fuck is wrong with it before I do.

Name: Anonymous 2008-12-04 2:23

I could have done that in one line.

Name: Anonymous 2008-12-04 2:24

>>2 Let's see it.

Name: Anonymous 2008-12-04 2:33

>>3
'

Name: Anonymous 2008-12-05 2:50

>>4
>'

Name: Anonymous 2008-12-05 13:21

set-cdr!
Invalid R6RS code.

Name: Anonymous 2008-12-08 22:03

The way you have the brackets implemented is not correct. Currently they will execute the code in the brackets , even when the head is null. Kind of like do {} while ();, where classically they are supposed to act like while() {}.

Name: Anonymous 2008-12-08 22:05

>>1
see
>>7

Name: Anonymous 2008-12-08 22:32

>>8 so?

Name: Anonymous 2008-12-08 22:34

>>8 How many R6RS Schemes are there to test code with?

Name: Anonymous 2008-12-08 22:43

>>8 That is why alist-set! is defined out-side of the main program, making it easy to replace with a purely functional version.

Name: Anonymous 2008-12-08 22:44

>>10
ikarus ypsilon mzscheme larceny (all of them are shit except maybe larceny)

Name: Anonymous 2008-12-08 22:51

Its a shame they took away SICP's mutable data structures. It makes the language more of toy than it was before.

Name: Anonymous 2008-12-09 10:51

>>13
Even more of a toy, you mean.

Name: Anonymous 2008-12-09 11:01

NEVER FORGET THE HEROES THAT GAVE THEIR TIME AND THEIR LIVES TO DIE FOR THE GREATER CAUSE OF MAKING THE PLEASURE OF BEING CUMMED INSIDE A GOOGLE MEME. YOUR SACRIFICE WILL NOT BE FORGOTTEN.

NVR FGT

Name: Anonymous 2008-12-09 18:16

meme sage

Name: Anonymous 2009-03-06 12:18

The problem with that I just figured   out how the   FUQUE do you   WANT BOOT DO.

Name: ​​​​​​​​​​ 2010-10-26 12:06

Name: Anonymous 2010-11-26 20:03

Name: Anonymous 2011-02-04 18:59

Name: Anonymous 2011-02-18 12:58

check 'em

Name: Anonymous 2013-06-18 19:45

I ARE ANDRU

Name: Anonymous 2013-06-18 19:52

I ARE ANDRU

Name: Anonymous 2013-06-18 19:59

I ARE ANDRU

Name: Anonymous 2013-06-18 20:06

I ARE ANDRU

Name: Anonymous 2013-06-18 20:13

I ARE ANDRU

Name: Anonymous 2013-06-18 20:21

I ARE ANDRU

Name: Anonymous 2013-06-18 20:28

I ARE ANDRU

Name: Anonymous 2013-06-18 20:35

I ARE ANDRU

Name: Anonymous 2013-06-18 20:42

I ARE ANDRU

Name: Anonymous 2013-06-18 20:49

I ARE ANDRU

Name: Anonymous 2013-06-18 20:56

I ARE ANDRU

Name: Anonymous 2013-06-18 21:03

I ARE ANDRU

Name: Anonymous 2013-06-18 21:10

I ARE ANDRU

Name: Anonymous 2013-06-18 21:17

I ARE ANDRU

Name: Anonymous 2013-06-18 21:25

I ARE ANDRU

Name: Anonymous 2013-06-18 21:32

I ARE ANDRU

Name: Anonymous 2013-06-18 21:39

I ARE ANDRU

Name: Anonymous 2013-06-18 21:46

I ARE ANDRU

Name: Anonymous 2013-06-18 21:53

I ARE ANDRU

Name: Anonymous 2013-06-18 22:00

I ARE ANDRU

Name: Anonymous 2013-06-18 22:07

I ARE ANDRU

Name: Anonymous 2013-06-18 22:15

I ARE ANDRU

Name: Anonymous 2013-06-18 22:22

I ARE ANDRU

Name: Anonymous 2013-06-18 22:29

I ARE ANDRU

Name: Anonymous 2013-06-18 22:36

I ARE ANDRU

Name: Anonymous 2013-06-18 22:43

I ARE ANDRU

Name: Anonymous 2013-06-18 22:50

I ARE ANDRU

Name: Anonymous 2013-06-18 22:57

I ARE ANDRU

Name: Anonymous 2013-06-18 23:04

I ARE ANDRU

Name: Anonymous 2013-06-18 23:11

I ARE ANDRU

Name: Anonymous 2013-06-18 23:18

I ARE ANDRU

Name: Anonymous 2013-06-18 23:25

I ARE ANDRU

Name: Anonymous 2013-06-18 23:32

I ARE ANDRU

Name: Anonymous 2013-06-18 23:40

I ARE ANDRU

Name: Anonymous 2013-06-18 23:46

I ARE ANDRU

Name: Anonymous 2013-06-18 23:53

I ARE ANDRU

Name: Anonymous 2013-06-19 0:00

I ARE ANDRU

Name: Anonymous 2013-06-19 0:08

I ARE ANDRU

Name: Anonymous 2013-06-19 0:15

I ARE ANDRU

Name: Anonymous 2013-06-19 0:22

I ARE ANDRU

Name: Anonymous 2013-06-19 0:29

I ARE ANDRU

Name: Anonymous 2013-06-19 0:36

I ARE ANDRU

Name: Anonymous 2013-06-19 0:43

I ARE ANDRU

Name: Anonymous 2013-06-19 0:50

I ARE ANDRU

Name: Anonymous 2013-06-19 0:57

I ARE ANDRU

Name: Anonymous 2013-06-19 1:03

I ARE ANDRU

Name: Anonymous 2013-06-19 1:10

I ARE ANDRU

Name: Anonymous 2013-06-19 1:17

I ARE ANDRU

Name: Anonymous 2013-06-19 1:24

I ARE ANDRU

Name: Anonymous 2013-06-19 1:31

I ARE ANDRU

Name: Anonymous 2013-06-19 1:38

I ARE ANDRU

Name: Anonymous 2013-06-19 1:45

I ARE ANDRU

Name: Anonymous 2013-06-19 1:52

I ARE ANDRU

Name: Anonymous 2013-06-19 1:59

I ARE ANDRU

Name: Anonymous 2013-06-19 2:06

I ARE ANDRU

Name: Anonymous 2013-06-19 2:13

I ARE ANDRU

Name: Anonymous 2013-06-19 2:20

I ARE ANDRU

Name: Anonymous 2013-06-19 2:27

I ARE ANDRU

Name: Anonymous 2013-06-19 2:34

I ARE ANDRU

Name: Anonymous 2013-06-19 2:41

I ARE ANDRU

Name: Anonymous 2013-06-19 2:48

I ARE ANDRU

Name: Anonymous 2013-06-19 2:55

I ARE ANDRU

Name: Anonymous 2013-06-19 3:02

I ARE ANDRU

Name: Anonymous 2013-06-19 3:09

I ARE ANDRU

Name: Anonymous 2013-06-19 3:16

I ARE ANDRU

Name: Anonymous 2013-06-19 3:22

I ARE ANDRU

Name: Anonymous 2013-06-19 3:29

I ARE ANDRU

Name: Anonymous 2013-06-19 3:37

I ARE ANDRU

Name: Anonymous 2013-06-19 3:44

I ARE ANDRU

Name: Anonymous 2013-06-19 3:51

I ARE ANDRU

Name: Anonymous 2013-06-19 3:58

I ARE ANDRU

Name: Anonymous 2013-06-19 4:05

I ARE ANDRU

Name: Anonymous 2013-06-19 4:12

I ARE ANDRU

Name: Anonymous 2013-06-19 4:18

I ARE ANDRU

Name: Anonymous 2013-06-19 4:25

I ARE ANDRU

Name: Anonymous 2013-06-19 4:32

I ARE ANDRU

Name: Anonymous 2013-06-19 4:39

I ARE ANDRU

Name: Anonymous 2013-06-19 4:46

I ARE ANDRU

Name: Anonymous 2013-06-19 4:53

I ARE ANDRU

Name: Anonymous 2013-06-19 5:00

I ARE ANDRU

Name: Anonymous 2013-06-19 5:07

I ARE ANDRU

Name: Anonymous 2013-06-19 5:14

I ARE ANDRU

Name: Anonymous 2013-06-19 5:21

I ARE ANDRU

Name: Anonymous 2013-06-19 5:28

I ARE ANDRU

Name: Anonymous 2013-06-19 5:35

I ARE ANDRU

Name: Anonymous 2013-06-19 5:42

I ARE ANDRU

Name: Anonymous 2013-06-19 5:49

I ARE ANDRU

Name: Anonymous 2013-06-19 5:56

I ARE ANDRU

Name: Anonymous 2013-06-19 6:03

I ARE ANDRU

Name: Anonymous 2013-06-19 6:10

I ARE ANDRU

Name: Anonymous 2013-06-19 6:17

I ARE ANDRU

Name: Anonymous 2013-06-19 6:24

I ARE ANDRU

Name: Anonymous 2013-06-19 6:31

I ARE ANDRU

Name: Anonymous 2013-06-19 6:38

I ARE ANDRU

Name: Anonymous 2013-06-19 6:45

I ARE ANDRU

Name: Anonymous 2013-06-19 6:48

I LOVE ANDRU

Name: Anonymous 2013-06-19 6:52

I ARE ANDRU

Name: Anonymous 2013-06-19 6:59

I ARE ANDRU

Name: Anonymous 2013-06-19 7:06

I ARE ANDRU

Name: Anonymous 2013-06-19 7:13

I ARE ANDRU

Name: Anonymous 2013-06-19 7:20

I ARE ANDRU

Don't change these.
Name: Email:
Entire Thread Thread List