Skip to content

Instantly share code, notes, and snippets.

View ceving's full-sized avatar
💭
Ejaculating

ceving

💭
Ejaculating
View GitHub Profile
@dginev
dginev / BasicAmbiguity.pl
Created September 3, 2013 02:41
Basic Math ambiguity - sin vs division
#!/usr/bin/env perl
use Marpa::R2;
use warnings;
use strict;
my $basic_math_grammar =
Marpa::R2::Scanless::G->new({
action_object => 'BasicMath',
default_action => '::first',
source => \(<<'END_OF_RULES'),
@UnkindPartition
UnkindPartition / parsec.scm
Created October 17, 2012 07:58
Simple parser combinators in Scheme
(define (return v) (lambda (s ks kf) (ks v s)))
(define fail (lambda (s ks kf) (kf)))
; >>=
(define (bind a f)
(lambda (s ks kf)
(a s
(lambda (av s1) ((f av) s1 ks kf))
kf)))
@jlongster
jlongster / gist:2323373
Created April 6, 2012 22:00
LiSP Ch.5: CPS conversion
;; outlet: https://github.com/jlongster/outlet
(define-macro (case c . variants)
`(cond
,@(map (lambda (exp)
(if (== (car exp) 'else)
exp
`((list-find ',(car exp) ,c)
,@(cdr exp))))
variants)))
@omegatakuma
omegatakuma / cps.scm
Created March 20, 2012 10:25
[Scheme]CPS
;default
(define (fact lst)
(if (null? (cdr lst))
(car lst)
(begin
(print lst)
(* (car lst) (fact (cdr lst))))))
;CPS
(define (fact/cps lst cont)
(cond