Skip to content

Instantly share code, notes, and snippets.

@sorawee
sorawee / README.md
Last active December 29, 2023 02:06
shen-thing

Put all files into a directory named shen-thing.

Run

$ cd shen-thing
$ raco pkg install

To test, run racket test.rkt. You should see:

@sorawee
sorawee / hash-pattern.rkt
Last active February 10, 2023 17:27
hash table pattern
#lang racket/base
(provide hash hash*)
(require racket/match
(only-in racket/base [hash racket:hash])
(for-syntax racket/base
racket/list))
(define undef (gensym))
@sorawee
sorawee / analyzer.rkt
Last active June 26, 2022 01:52
racket-package-source
#lang racket
(require json
text-table
scramble/regexp
syntax/parse/define)
(define-RE GIT:// (inject "git://"))
(define-RE HTTPS:// (inject "https://"))
(define-RE GITHUB:// (inject "github://"))
[u]: unknown status
[g]: information queried globally
[l]: information queried locally
@ is a dummy package that requires every registered package.
Author [*] Package Required by License
--------------------------------------------------------------------------------------------------------------------------------
#f [u] https://github.com/thoughtstem/T battle-arena can't find the package
S-Kata-Collections.git?path=ts-k
@sorawee
sorawee / tree-path.rkt
Created March 7, 2021 18:01
tree-path.rkt
#lang racket
;; tree-path :: tree? -> any/c -> (listof (or/c 'here 'left 'right))
(define (tree-path t elt)
(let loop ([t t] [out '()])
(match t
['empty '()]
[`(node ,(== elt) ,_ ,_) (reverse (cons 'here out))]
[`(node ,_ ,l ,r)
(match (loop l (cons 'left out))
diff --git a/scribble-lib/scribble/private/context.rkt b/scribble-lib/scribble/private/context.rkt
new file mode 100644
index 00000000..bd2fe49d
--- /dev/null
+++ b/scribble-lib/scribble/private/context.rkt
@@ -0,0 +1,5 @@
+#lang racket/base
+
+(provide current-id-name)
+
#lang racket
(require racket/generator)
(define (M input)
(define (q0 input)
(match input
[(list) #f]
[(list 0 xs ...) (q1 xs)]
[(list 1 xs ...) (q0 xs)]))
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Major Version</key>
<integer>1</integer>
<key>Minor Version</key>
<integer>1</integer>
<key>Date</key>
<date>2015-08-06T19:52:58Z</date>
#include <iostream>
#include <vector>
using namespace std;
// returns 2^x such that 2^x >= n
inline int smallest_pow2(int n) {
int ret = 1;
while (ret < n) ret <<= 1;
return ret;