This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (import (rnrs) (clos user) (clos core)) | |
| (define-class <generic-inner> (<generic>) ()) | |
| (define-method compute-applicable-methods ((gf <generic-inner>) args) | |
| `(,@(reverse! (call-next-method)) | |
| ;; add very bottom one | |
| ,(make-method (list <top>) | |
| (lambda (call-next-method o) "")))) | |
| (define-generic inner :class <generic-inner>) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (define-method last ((o <bottom>)) (print 'bottom) (call-next-method)) | |
| (define-method last ((o <top>)) (print 'top) o) | |
| (print (last 'ok)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (defun my-intern (s &rest package) | |
| (declare (type string s) | |
| (type symbol package) | |
| (optimize (debug 0) (speed 3) (safety 0))) | |
| (let ((readtable-case (readtable-case *readtable*))) | |
| (apply #'intern (case readtable-case | |
| ((:upcase) (string-upcase s)) | |
| ((:downcase) (string-downcase s)) | |
| ((:preserve) s) | |
| ((:invert) ;; lazy.. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ;; For R6RS | |
| (import (rnrs) (rnrs mutable-pairs)) | |
| ;; For R7RS | |
| ;;(import (scheme base) (scheme cxr) (scheme write)) | |
| (define a (list 1 2)) | |
| (define b (list 1 2 1 2)) | |
| (set-cdr! (cdr a) a) ;; #0=(1 2 . #0#) | |
| (set-cdr! (cdddr b) b) ;; #0=(1 2 1 2 . #0#) | |
| (display (equal? a b)) (newline) | |
| (display (equal? b a)) (newline) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (import (rnrs)) | |
| (define-syntax outer-define | |
| (lambda (x) | |
| (syntax-case x () | |
| ((_ name def) | |
| #'(define-syntax name | |
| (lambda (xx) | |
| (syntax-case xx () | |
| ((_ val) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (import (rnrs)) | |
| (define sx1 #'x) | |
| (define sx2 #f) | |
| (let () | |
| (set! sx2 #'x)) | |
| (display (bound-identifier=? sx1 sx2)) (newline) | |
| ;; should print #t |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (import (rnrs) (clos user) (clos core)) | |
| (define-class <record-type-descriptor> () | |
| ((name :init-keyword :name) | |
| (parent :init-keyword :parent :reader record-type-parent) | |
| (uid :init-keyword :uid) | |
| (sealed? :init-keyword :sealed?) | |
| (opaque? :init-keyword :opaque?) | |
| (fields :init-keyword :fields :reader rtd-fields) | |
| ;; instanciate class |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (import (rnrs) (crypto) (math) (time)) | |
| (define target (hash MD5 (string->utf8 "hoge$567890"))) | |
| (print target) | |
| (define (solve) | |
| (define md5-hash (hash-algorithm MD5)) | |
| (define buf (make-bytevector (hash-size md5-hash))) | |
| (define value (u8-list->bytevector | |
| (append (map char->integer (string->list "hoge$")) | |
| '(0 0 0 0 0 0)))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (import (rnrs) (srfi :1) (json) (pp)) | |
| (define data (call-with-input-file "data.json" json-read)) | |
| (pp data) | |
| (define (json:first-node data) | |
| (cond ((vector? data) (vector-ref data 0)) | |
| ((pair? data) (if (pair? (cdr data)) (cadr data) (cdr data))) | |
| (else data))) ;; value node? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ;; inspired by http://g000001.cddddr.org/3601131164 | |
| (import (rnrs) | |
| (net twitter) | |
| (text json select) | |
| (text json tools) | |
| (srfi :42)) | |
| #| | |
| ((consumer-key "......") | |
| (consumer-secret ".....") |