I hereby claim:
- I am phoe on github.
- I am phoe (https://keybase.io/phoe) on keybase.
- I have a public key whose fingerprint is DF25 B517 A75E 2BBC 08CC B16B 2463 9CD1 4EE8 FB35
To claim this, I am signing this object:
On why stateful code is bad | |
=========================== | |
STUDENT: Sir, can I ask a question? | |
TEACHER: Yes! | |
STUDENT: How do you put an elephant inside a fridge? | |
TEACHER: I don't know. | |
STUDENT: It's easy, you just open the fridge and put it in. I have another question! | |
TEACHER: Ok, ask. | |
STUDENT: How to put a donkey inside the fridge? |
I hereby claim:
To claim this, I am signing this object:
(defclass foo-class (standard-class) ;; we first create a metaclass | |
()) ;; no slots required | |
(defmethod initialize-instance :before ((class foo-class) &key my-argument) | |
(print my-argument)) ;; when we first define the class, just print the arguments | |
(defmethod reinitialize-instance :before ((class foo-class) &key my-argument) | |
(print my-argument)) ;; when we later redefine the class, just print the arguments again | |
(defmethod validate-superclass ((class foo-class) (super standard-class)) |
// note: -D_7ZIP_ST is required when compiling on non-Windows platforms | |
// g++ -o lzma_sample -std=c++14 -D_7ZIP_ST lzma_sample.cpp LzmaDec.c LzmaEnc.c LzFind.c | |
#include <stdio.h> | |
#include <stdint.h> | |
#include <string.h> | |
#include <memory> | |
#include "LzmaEnc.h" | |
#include "LzmaDec.h" |
#| | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;; CFFI LZMA Wrapper | |
;; © Michał "phoe" Herda 2017 | |
;; public domain | |
;; Use the attached lzma.so file, which is a x64 Linux shared | |
;; object. To compile the shared library file yourself: | |
;; 1. Install the official LZMA SDK from Igor Pavlov. |
(let* ((list (list 1 2 3 4 5 6 7 8 9 0)) | |
(first list) | |
(second (cdr list))) | |
(do ((left list (cdr left)) | |
(right (cdr list) (cdr right))) | |
((and (null (cdr left)) | |
(null (cdr right)))) | |
(setf (cdr left) (cddr left) | |
(cdr right) (cddr right))) | |
(values first second)) |
;; thanks, beach! | |
(defun split-list-if (predicate list) | |
"Destructively splits the provided list into two lists: one contains the | |
elements of the original list that satisfy the predicate, the other contains | |
elements that do not satisfy the predicate. The order of the original elements | |
is preserved." | |
(loop with result1 = '() | |
with result2 = '() | |
with rest = list |
;; unfinished - I'll think of finishing this some other time mayhaps | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;;;; BKNR.MULTISTORE | |
;;;; © Michał "phoe" Herda 2017 | |
;;;; bknr.multistore.lisp | |
(defpackage #:bknr.multistore | |
(:shadowing-import-from #:closer-mop | |
#:standard-generic-function #:defmethod #:defgeneric |
"This one should be fairly obvious." | |
(defun the-answer-to-life-the-universe-and-everything () | |
(+(*(+(*)(*))(+(*)(*)(*)))(*(*(+(*)(*))(+(*)(*)(*)))(*(+(*)(*))(+(*)(*)(*)))))) | |
"The advanced version of the above." | |
(defun rick ( | |
) ( | |
+ (+ | |
) ( *) ( | |
*) (+) ( *) |
(defun pprint-plist (*standard-output* list) | |
"Pretty-prints a plist with newlines after each key-value pair. | |
This will break if not called at toplevel, but works well enough for my use case." | |
(pprint-logical-block (*standard-output* list :prefix "(" :suffix ")") | |
(loop for cell on list by #'cddr | |
do (write (first cell)) | |
(write-char #\Space) | |
(write (second cell)) | |
(when (cddr cell) | |
(terpri *standard-output*) |