Skip to content

Instantly share code, notes, and snippets.

View malisper's full-sized avatar

Michael Malis malisper

View GitHub Profile
(2/5 7/51874849202 337186519813/7 3/2 19/33 253/19 17/3 31/17 41/31 29/17 29/23
47/29 59/47 43/29 43/41 4087/43 71/4087 79/71 89/79 73/71 73/59 101/8833
12463/101 97/73 109/97 127/109 107/97 107/103 137/107 149/137 131/107 131/127
23707/131 163/23707 173/163 89/173 167/163 167/149 191/222277 256883/191
181/167 199/181 223/199 197/181 197/193 229/197 239/229 227/197 227/223
60491/227 257/60491 269/257 89/269 263/257 263/239 281/3850583 4143403/281
277/263 307/277 313/307 293/277 293/283 331/293 347/331 317/293 317/313
123197/317 359/123197 373/359 89/373 367/359 367/347 389/59105717 63937247/389
383/367 409/383 421/409 401/383 401/397 433/401 443/433 431/401 431/421
205193/431 461/205193 467/461 89/467 463/461 463/443 491/820232743
(defun multiple (a b)
"Is A a multiple of B?"
(= (mod a b) 0))
(defun next-fraction (n fractions)
"Returns the next value of F in the Fractran program."
(find-if (lambda (f)
(integerp (* n f)))
fractions))
>>>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++++++++++++++++++
(self-referential-version-of
'(lambda (self)
(format t
"#include <stdio.h>~%int main(){printf(\"%s\",~(~s~));}"
(remove #\newline (prin1-to-string self)))))
=>
>> (def test (seed)
(flet1 gen () (pop seed)
(ret result (vector 1 2 3)
(up i 0 3
(swap (aref result i) (aref result (gen)))))))
TEST
>> (test)
; Evaluation aborted on #<SB-INT:SIMPLE-PROGRAM-ERROR "invalid number of arguments: ~S" {1004E51A23}>.
>> (test '(0 0 0))
#(3 1 2)
@malisper
malisper / gist:610f691e7b3919d6a421
Created September 8, 2015 16:19
Macroexpansion of defasm
(progn
(let* ((#:*opcode-meta*1641 *opcode-meta*))
(let ((#:new1640 '(adc "Add to Accumulator with Carry" 6 2 indirect-x)))
(funcall #'(setf aref) #:new1640 #:*opcode-meta*1641 97)))
(let* ((#:*opcode-meta*1643 *opcode-meta*))
(let ((#:new1642 '(adc "Add to Accumulator with Carry" 3 2 zero-page)))
(funcall #'(setf aref) #:new1642 #:*opcode-meta*1643 101)))
(let* ((#:*opcode-meta*1645 *opcode-meta*))
(let ((#:new1644 '(adc "Add to Accumulator with Carry" 2 2 immediate)))
(funcall #'(setf aref) #:new1644 #:*opcode-meta*1645 105)))
@malisper
malisper / gist:fe2cf8158714c196ec03
Last active August 29, 2015 14:22
Trace of functions in CL-WHO
(macroexpand-1 '(with-html-output (*standard-output*)
(:p :align "right" "Here is some text with a part of it "
(:b "bolded."))))
;; The function trace
0: (TREE-TO-TEMPLATE
((:P :ALIGN "right" "Here is some text with a part of it "
(:B "bolded."))))
1: (PROCESS-TAG
(defpackage :hardest-problem
(:nicknames :hard)
(:use :clamp :experimental :iter)
(:shadowing-import-from :experimental
:def :mac :fn :defmemo :coerce
:while :until :repeat :summing :with :in))
(in-package :hard)
(def know (possibilities)
(defmacro iter (&body body)
(with-gensyms (iter-block accumulate start)
(handler-case
(macroexpand-dammit:macroexpand-dammit
`(block ,iter-block
(let ((,accumulate nil))
(macrolet ((while (condition)
`(unless ,condition
(return-from ,',iter-block
(nreverse ,',accumulate))))