Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,20 @@
|
|||
#lang racket
|
||||
|
||||
;; some silly boilerplate to mimic the assembly code better
|
||||
(define r0 0)
|
||||
(define (cmp r1 r2) (set! r0 (sgn (- r1 r2))))
|
||||
(define (je true-label false-label) (if (zero? r0) (true-label) (false-label)))
|
||||
(define (goto label) (label))
|
||||
|
||||
(define (gcd %eax %ecx)
|
||||
(define %edx 0)
|
||||
(define (main) (goto loop))
|
||||
(define (loop) (cmp 0 %ecx)
|
||||
(je end cont))
|
||||
(define (cont) (set!-values [%eax %edx] (quotient/remainder %eax %ecx))
|
||||
(set! %eax %ecx)
|
||||
(set! %ecx %edx)
|
||||
(goto loop))
|
||||
(define (end) (printf "result: ~s\n" %eax)
|
||||
(return %eax))
|
||||
(main))
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
(define (list-product l)
|
||||
(with-handlers ([void identity])
|
||||
(let loop ([l l] [r 1])
|
||||
(cond [(null? l) r]
|
||||
[(zero? (car l)) (raise 0)]
|
||||
[else (loop (cdr l) (* r (car l)))]))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue