This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| Require Import Coq.NArith.NArith. | |
| Theorem add_1_r : forall p, (p + 1)%positive = Pos.succ p. | |
| Proof. | |
| induction p; simpl; eauto. | |
| Qed. | |
| Theorem add_carry_spec : forall p q, Pos.add_carry p q = Pos.succ (p + q). | |
| Proof. | |
| induction p; induction q; simpl; eauto. |
The --- separator is not squeak syntax, but is presented to distinguish IDE("Browser") code from REPL content ("Workspace").
| #lang slideshow | |
| (require slideshow/play) | |
| (provide timer-slide) | |
| (module stopwatch racket | |
| (provide (all-defined-out)) | |
| (define time? number?) | |
| (define (seconds n) n) |
| (define pipe | |
| ; Inspired on F#'s Forward pipe operator (|>) | |
| (lambda args | |
| (let ((v (car args)) | |
| (functions (cdr args))) | |
| (foldl (λ (f v) (f v)) v functions)))) | |
| (test (pipe 1 | |
| add1 |
| brew install ncurses | |
| gem install ncursesw -- --with-opt-dir=/usr/local/opt/ncurses |
| #lang racket | |
| ;P1 No. Al evaluar, el nombre 'fibs en la llamada recursiva no se encontrará en el ambiente. | |
| ;P3: | |
| ;pow no es recursiva por la cola | |
| (define (pow base exp) | |
| (if (= exp 0) | |
| 1 |
| #lang plazy | |
| (define (my-if p t f) | |
| (if p t f)) | |
| (define (infiniteloop x) | |
| (infiniteloop x)) | |
| ;al contrario de #lang racket, aquí esta función sí funciona correctamente. | |
| (my-if #f (infiniteloop 0) 123) |
| #lang racket | |
| (define (my-if pred true false) | |
| (if | |
| (pred) | |
| (true) | |
| (false))) | |
| ;(define (infiniteloop x) | |
| ; (infiniteloop x)) |
| #lang plai | |
| #| | |
| <WAE> ::= <num> | |
| | {+ <WAE> <WAE>} | |
| | {- <WAE> <WAE>} | |
| | {with {<id> <WAE>} <WAE>} | |
| | <id> | |
| |# | |
| (define-type WAE |