Skip to content

Instantly share code, notes, and snippets.

View erkin's full-sized avatar

Lulu Cathrinus Grimalkin erkin

View GitHub Profile
@erkin
erkin / regexp-checker.rkt
Created October 30, 2020 23:04
A graphical regular expression checker in plain Racket, supports PCRE
#lang racket/base
(require racket/gui/base
racket/class
racket/list
racket/string)
(define program-name "regexp-checker")
(define program-version "v0.1")
(define version-message
@erkin
erkin / sudoku.rkt
Created December 11, 2020 23:40
Nondeterministic sudoku solver
#lang racket
(module amb racket/base
(provide amb assert!)
(define-syntax-rule (pop! stack)
(begin0 (car stack) (set! stack (cdr stack))))
(define-syntax-rule (push! v stack)
(set! stack (cons v stack)))
(define (U f) (f f))
@erkin
erkin / little-macros.ss
Last active April 7, 2021 17:08
Useful Scheme macros I keep rewriting for every project
(define-syntax define-syntax-rule
(syntax-rules ()
((_ (name args ...) body)
(define-syntax name
(syntax-rules ()
((name args ...) body))))))
(define-syntax-rule (do-times n . body)
(do ((i n (sub1 i)))
((< i 1))
@erkin
erkin / csexp.scm
Last active October 14, 2022 07:18
Canonical S-expression parser
(define (read-csexp)
(letrec
((left-paren (char->integer #\())
(right-paren (char->integer #\)))
(zero (char->integer #\0))
(nine (char->integer #\9))
(colon (char->integer #\:))
(in (current-input-port))
(read-atom
(λ (byte digits)