summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbnewbold <bnewbold@eta.mit.edu>2009-04-30 23:06:34 -0400
committerbnewbold <bnewbold@eta.mit.edu>2009-04-30 23:06:34 -0400
commite811f275d54e9b19bcf0c35e4e8a862b9eeff005 (patch)
tree0d77280a15d83e1cda9757fc8a549bdddb2208cd
parentd2b08b353b004be2c7ef38c4bd61c5144a0de7ff (diff)
download6.945-e811f275d54e9b19bcf0c35e4e8a862b9eeff005.tar.gz
6.945-e811f275d54e9b19bcf0c35e4e8a862b9eeff005.zip
project prog
-rw-r--r--final_project/work/description26
-rw-r--r--final_project/work/examples.scm29
2 files changed, 55 insertions, 0 deletions
diff --git a/final_project/work/description b/final_project/work/description
new file mode 100644
index 0000000..64b6574
--- /dev/null
+++ b/final_project/work/description
@@ -0,0 +1,26 @@
+
+A generic operator system connects the application of a generic procedure on
+multiple arguments to the "appropriate" procedure for those specific arguments
+based on type predicates.
+
+Our problem is to take an individual object (/not/ in the object-oriented
+sense of the word, but in the s-expression sense of the word) and determine
+the set of procedures which /could/ be applied to it based on type predicates
+and present these options interactively to the user in a useful manner.
+
+[Various optimizations to this process will be discussed]
+
+We will consider and demonstrate this system in the domains of a) the R5RS
+Scheme builtin types and procedures and b) the scmutils types and special
+procedures for mathematics and physics. Our "range" for these domains will
+be an interactive REPL environment (or just text interaction?) and a GTK
+graphical user interface.
+
+Other domains this system could be applied to include:
+ random correctness or unit testing of complex systems
+ automatically generated generic user interfaces
+
+Related problems (which could be covered by this work?):
+ chaining procedures (eg if f maps A->B and g maps B->C, then gof maps
+ A->C which might be what we want
+ some kind
diff --git a/final_project/work/examples.scm b/final_project/work/examples.scm
new file mode 100644
index 0000000..314820b
--- /dev/null
+++ b/final_project/work/examples.scm
@@ -0,0 +1,29 @@
+
+; these could be considered as unit tests or demonstrations
+
+(describe 5.67)
+; This is a rational number
+
+(describe (up 3 4 5))
+; This is an "up" tuple of three integers
+
+(describe #(3.5 8 3))
+; This is a vector of three rational numbers
+
+(describe (*number* (sin (+ 4 'b))))
+; This is an expression with one variable which returns a number
+
+
+(describe-options (lambda (x y) (+ (* x 3) (square y))))
+; This is a procedure which accepts two arguments. You could:
+; 1) Evaluate for two inputs
+
+(describe-options (literal-function 'g (-> (X Real Real) Real)))
+; This is a math function which maps two reals to one real. You could:
+; 1) Evaluate numerically for two real inputs
+; 2) Differentiate symbolically for either variable
+; 3) Find the gradient function symbolically
+; 4) Plot in three dimensions over a given domain
+; 5) Plot in two dimensions for a fixed value of the first or second var
+; 6) Numerically calculate the maximum or minimum
+