Skip to content

Instantly share code, notes, and snippets.

View ytaki0801's full-sized avatar

TAKIZAWA Yozo ytaki0801

View GitHub Profile
cons () {
eval CAR"$CNUM"="$1"; eval CDR"$CNUM"="$2";
CONSR="$CNUM.conscell"; CNUM="$((CNUM+1))";
}
car () { eval CARR="\$CAR${1%%.conscell}"; }
cdr () { eval CDRR="\$CDR${1%%.conscell}"; }
TRUE=1; FALSE=0; NULL="empty";
pairp () {
case "$1" in (*.conscell) PAIRPR="$TRUE" ;; (*)
;;;; referense
;;;; SLIB 3b1-5
;;;; Gauche 0.9.11
;;;; MIT/GNU Scheme 11.2
(define (reduce-right f ridentity ls)
(if (null? ls) ridentity
(let loop ((ridentity (car ls)) (ls (cdr ls)))
(if (null? ls) ridentity
(f ridentity (loop (car ls) (cdr ls)))))))
(cond-expand
(gauche (import (gauche base) (scheme base) (scheme write)))
(guile (import (srfi srfi-1)))
(chibi (import (srfi 1) (scheme small))))
(define (f x y) (list (list (+ (* (caar x) (caar y))
(* (cadar x) (caadr y)))
(+ (* (caar x) (cadar y))
(* (cadar x) (cadadr y))))
(list (+ (* (caadr x) (caar y))