Skip to content

Instantly share code, notes, and snippets.

@haruhi-s
haruhi-s / cps.lisp
Created November 3, 2024 18:24
implementing a lisp-1 with call/cc in SBCL
(defvar *env* `((t . t)
,@(mapcar
(lambda (x) `(,x . ,(symbol-function x)))
'(+ - * / cons car cdr caar cadr cdar cddr caaar caadr cadar caddr cdaar cdadr cddar cdddr
caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr cdaaar cdaadr cdadar cdaddr cddaar
cddadr cdddar cddddr eq list list* read not prin1 print write-string))
(get-meta-lvl . ,(lambda () *meta-lvl*))
(eval . ,(lambda (x) (let ((*meta-lvl* (1+ *meta-lvl*))) (eval-env x *env*))))))
(defun map& (f list k)
@haruhi-s
haruhi-s / quine.el
Last active November 1, 2024 19:29
quines!
;; Quines evaluating to themselves
;; subjects to study
(let ((let '`(let ((let ',let)) ,let))) `(let ((let ',let)) ,let))
((lambda (lambda) `(,lambda ',lambda)) '(lambda (lambda) `(,lambda ',lambda)))
(let ((let (lambda (lambda) `(let ((let ,lambda)) (funcall let ',lambda))))) (funcall let '(lambda (lambda) `(let ((let ,lambda)) (funcall let ',lambda)))))
;; quines written in a more human-readable way
(let ((x '`(let ((x ',x)) ,x))) `(let ((x ',x)) ,x)) ;; (1)
((lambda (y) `(,y ',y)) '(lambda (y) `(,y ',y))) ;; (2)
(let ((f (lambda (x) `(let ((f ,x)) (funcall f ',x))))) ;; (3)
@haruhi-s
haruhi-s / .bashrc
Last active November 7, 2024 21:00
PS1 for correct working directory in vterm
function extract {
if [ -z "$1" ]; then
# display usage if no parameters given
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz|.zlib|.cso>"
echo " extract <path/file_name_1.ext> [path/file_name_2.ext] [path/file_name_3.ext]"
else
for n in "$@"
do
if [ -f "$n" ] ; then
case "${n%,}" in
import Control.Monad
import Data.List
import Data.Ratio
import Test.Speculate.Utils
data Expr a = T Char (Expr a) (Expr a) | L a deriving Eq
instance Show (Expr Double) where
show (L a) = show (truncate a)
show (T op a b) = "(" ++ show a ++ [op] ++ show b ++ ")"
instance Show (Expr Integer) where
(defcfg
input (device-file "/dev/input/by-path/platform-i8042-serio-0-event-kbd")
output (uinput-sink
"KMonad"
"sleep 0.2s; xset r rate 250 50; sleep 0.2s; setxkbmap -option compose:menu")
)
#| -------------- Keeb Pattern ------------------------------
(deflayer name
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 ins prnt del
#SingleInstance Force
if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%" ; Requires v1.0.92.01+
ExitApp
}
getSelection(){
ClipSaved := ClipboardAll
Clipboard := ""
#SingleInstance Force
if not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%" ; Requires v1.0.92.01+
ExitApp
}
getSelection(){
ClipSaved := ClipboardAll
Clipboard := ""
f (x,y) = case (mod x 3, mod y 2) of
(1,0) -> True
_ -> False
g (x,y) = case (mod x 3, mod y 2) of
(0,_) -> True
_ -> False
s = [(1,4),(6,2),(6,6),(6,2),(3,6),(4,2),(4,4),(1,1),(1,5),(4,5),(2,1),(6,3),(2,5),(2,5),(6,4),(2,1),(3,6),(4,3),(5,2),(3,5),(4,3),(4,1),(5,2),(5,6),(6,2),(2,6),(2,3),(3,5),(6,4),(2,6),(1,3),(2,2),(3,1),(4,6),(4,5),(1,3),(6,1),(5,4),(6,3),(5,5),(5,5),(6,2),(1,5),(3,6),(2,5),(1,5),(5,2),(6,6),(3,1),(4,5),(3,3),(1,6),(4,1),(2,2),(5,4),(5,5),(1,1),(4,5),(3,2),(5,3),(6,5),(6,1),(5,6),(4,4),(1,3),(5,4),(6,1),(4,4),(1,1),(6,5),(5,3),(2,6),(5,1),(5,5),(1,4),(5,4),(6,6),(5,6),(2,2),(6,2),(4,2),(6,2),(3,1),(1,2),(3,2),(6,3),(2,1),(2,6),(3,2),(3,3),(1,4),(4,3),(2,4),(1,6),(6,2),(5,4),(2,6),(2,5),(1,1),(2,3),(1,3),(1,3),(4,6),(1,2),(4,4),(4,6),(4,4),(6,6),(2,3),(3,3),(2,1),(6,1),(2,4),(2,1),(1,5),(1,2),(5,6),(6,1),(4,5),(5,4),(3,4),(1,5),(5,2),(3,6),(4,6),(2,5),(6,3),(4,4),(6,2),(6,3),(1,6),(6,3),(5,2),(5,4),(1,2),(2,3),(1,3),(5,1),(4,4),(3,2),(1,6),(2,2),(6,1),(6,5),(3,3),(3,1),(2,3),(2,4)
{-# language DeriveFunctor #-}
import Data.Functor.Fixedpoint
data E r =
Block [r] |
Define String (DefExpr r)
deriving (Functor, Show)
data DefExpr r =
Function [String] r
deriving (Functor, Show)
@haruhi-s
haruhi-s / flashG.sh
Created September 8, 2018 07:27
two flash scripts for my hhkb
sleep 5; ./dfu-programmer.exe atmega32u4 erase --force && ./dfu-programmer.exe atmega32u4 flash hhkbG_rn42.hex && ./dfu-programmer.exe atmega32u4 reset