Skip to content

Instantly share code, notes, and snippets.

View spdegabrielle's full-sized avatar

Stephen De Gabrielle spdegabrielle

View GitHub Profile
module type CELL = sig
type 'a cell
type 'a exp
val return : 'a -> 'a exp
val (>>=) : 'a exp -> ('a -> 'b exp) -> 'b exp
val cell : 'a exp -> 'a cell exp
val get : 'a cell -> 'a exp
@spdegabrielle
spdegabrielle / gist:e02b748cb6bc4a0d9715d5dc0784fee5
Created December 3, 2017 16:41 — forked from danking/gist:1068185
A very simple example showing how to use Racket's lexing and parsing utilities
#lang racket
(require parser-tools/lex
(prefix-in re- parser-tools/lex-sre)
parser-tools/yacc)
(provide (all-defined-out))
(define-tokens a (NUM VAR))
(define-empty-tokens b (+ - EOF LET IN))
(define-lex-trans number
(syntax-rules ()
@spdegabrielle
spdegabrielle / draw-partly-rounded-shape.rkt
Created November 29, 2017 18:40 — forked from tonyg/draw-partly-rounded-shape.rkt
Drawing partly-rounded-rectangles using Racket's path support
#lang send-exp racket
(require racket/draw)
(define-syntax-rule (build-path (p) body ...)
(let ((p (new dc-path%)))
body ...
p))
(define (quarter-circle p cx cy quarter radius)
@spdegabrielle
spdegabrielle / opencv-demo.rkt
Created November 29, 2017 18:39 — forked from tonyg/opencv-demo.rkt
Capturing and displaying video (webcam) frames using OpenCV from Racket
#lang racket/base
(provide )
(require ffi/unsafe)
(require ffi/unsafe/define)
(require ffi/unsafe/cvector)
(require ffi/vector)
(define highgui-lib (ffi-lib "libopencv_highgui" '("2.4" #f)))
@spdegabrielle
spdegabrielle / blur.rkt
Created November 29, 2017 18:37 — forked from jbclements/blur.rkt
The 'blur' function for a rust-in-racket demo
;; the gaussian filter used in the racket blur.
;; boosted center value by 1/1000 to make sure that whites stay white.
(define filter '[[0.011 0.084 0.011]
[0.084 0.620 0.084]
[0.011 0.084 0.011]])
;; racket-blur: blur the image using the gaussian filter
;; number number list-of-bytes -> vector-of-bytes
(define (racket-blur width height data)
(define data-vec (list->vector data))
@spdegabrielle
spdegabrielle / main.rkt
Created November 29, 2017 18:27 — forked from samth/main.rkt
#lang racket/base
(require racket/class json net/url racket/port net/base64 racket/match
racket/format racket/trait net/head framework/preferences)
(provide client%)
(define-local-member-name login)
(define-local-member-name password)
(preferences:set-default 'github:oauth-token #f (λ _ #t))
@spdegabrielle
spdegabrielle / tweet.rkt
Created November 27, 2017 00:32 — forked from dvanhorn/tweet.rkt
Tweet from Racket
#lang racket
(provide tweet!)
(require (only-in racket/random crypto-random-bytes)
json
net/url
(only-in net/uri-codec [uri-unreserved-encode %])
web-server/stuffers/hmac-sha1
(only-in net/base64 base64-encode))
;; For description, see:
@spdegabrielle
spdegabrielle / index.html
Created March 21, 2016 13:16 — forked from diethardsteiner/index.html
Simple D3JS Dashboard
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Testing Pie Chart</title>
<!--<script type="text/javascript" src="d3/d3.v2.js"></script>-->
<script src="http://d3js.org/d3.v2.js"></script>
<!-- Note: I made good use of the sample code provided by the D3JS community and extended it to fit my needs to create this simple dashboard -->
<style type="text/css">
#lang s-exp syntax/module-reader
(submod "daylang.rkt" semantics)
#:read my-read
#:read-syntax my-read-syntax
(define (my-read in) (syntax->datum (my-read-syntax #f in)))
(define (my-read-syntax src in)
(define line (read-line in))
(if (eof-object? line)
#lang racket
; https://gist.github.com/joskoot/797a9e7d2276cf59d747
; TODO: Put the documentation in a scrbl file.
#|====================================================================================================
EMBEDDING INFIX NOTATION IN RACKET
------------------------------------------------------------------------------------------------------
syntax (infix infix-expr) => prefix-expr -> value of the prefix-expr = value of the infix-expr.
syntax ($ infix-expr) => prefix-expr -> value of the prefix-expr = value of the infix-expr.