(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| #!/usr/bin/env scheme --script | |
| (import (nanopass)) | |
| (define unique-var | |
| (let () | |
| (define count 0) | |
| (lambda (name) | |
| (let ([c count]) | |
| (set! count (+ count 1)) |
| #include <SWI-Prolog.h> | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| typedef struct context /* define a context structure */ | |
| { | |
| int max; | |
| } context; | |
| foreign_t |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| #lang racket/base | |
| (provide uniq) | |
| ;;; | |
| ;;; Uniq | |
| ;;; | |
| ; The function uniq takes a list as input and returns a new list: | |
| ; adjacent elements are compared and omits any repeated elements. | |
| ; In other words, uniq works like the Unix utility uniq, but on list. |
| #lang racket | |
| (provide (except-out (all-defined-out) | |
| stack)) | |
| (struct exn:fail:stack exn:fail ()) | |
| (struct stack ([vector] | |
| [top #:mutable]) | |
| #:transparent) |
| #lang racket | |
| (define the-key 'the-key) | |
| (define the-spell-book 'the-spell-book) | |
| (define person% | |
| (class object% | |
| (init-field items h) | |
| (super-new) | |
| #lang racket | |
| (define the-key 'the-key) | |
| (define the-spell-book 'the-spell-book) | |
| (define person% | |
| (class object% | |
| (init-field items h) | |
| (super-new) | |
| {-# LANGUAGE DeriveFunctor #-} | |
| module Crush( | |
| AST(..) | |
| , crush | |
| , crushMap | |
| , crushMapM | |
| -- debugging | |
| , buildAst | |
| , printAst |
| ;guile 2.2.3 | |
| (use-modules (ice-9 local-eval)) | |
| (use-modules (ice-9 match)) | |
| (use-modules (srfi srfi-9)) | |
| (define-record-type Just | |
| (make-Just x) | |
| Just? | |
| (x Just-x)) | |
| module Bridge where | |
| import Data.List | |
| import Data.Maybe | |
| import qualified Data.Tree as DTree | |
| import qualified Data.Map as Map | |
| -- Note that user must ensure there is at least one (0, x) in pieces | |
| pieces :: [Piece] | |
| pieces = [(0,2), (2,2), (2,3), (3,4), (3,5), (0,1), (10,1), (9,10)] |