-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnotes.txt
More file actions
84 lines (71 loc) · 1.74 KB
/
notes.txt
File metadata and controls
84 lines (71 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Building a Clojure DSL for Lego MindStorm / Arduino Robots
February 2012
Lego
-parts
-technic
-motors (are sensors)
-sensors
-touch
-ultrasonic
-light
-brick
-LCD
-buttons
-sound
-lessons
-essential parts of a computer: processor, memory, input, output
-projects
-vehicles
-machines
-gears, levers, motion translation
-hand-held games +sensors, motors
-demo
-code
-graphical environment
-many choices
-Lua
-Not Exactly C (NXC)
-benefits
-nicely packaged products
-sophisticated features packed in
-provide low-level access to peripherals
Arduino
-parts
-arduino board
-processor, memory
-digital I/O pins
-analog input pins
-power/ground for external circuit
-tank
-model kit
-motors, selectable gearbox
-motor shield
-power motors
-set direction
-brakes
-measure current draw
-demo
-benefits
-all open, go as deep as you want
DSL
-ops
-sandbox
-teaching benefits
-tinkerable language (like the hardware)
-tap into the various Clojure/Lisp parts
-define the operators
-define the language constructs (e.g. flow control)
-define/implement variables, scoping, etc.
-teach that "code is data", it is just text/forms
-abstractions - emit code in many languages
-Clojure/Lisp exposure
-benefits
-bang for your buck
-nestle tightly down into Clojure/Lisp parts
-e.g. use Clojure evaluator to walk the tree, get macros "for
free", no need to write parser, etc.
-constructor functions/macros
-type to dispatch on
-associative field access
Thanks!
@david_mcneil