> eval #Please forgive incomprehensible details, which appear due to traditional arrangements of the usual sort of Lisp repl. Let us repeat what we claim: The ring Z can be specified by giving its carrier |Z|, which is just the set of integers, and the set of ring terms TR(|Z|), and the map eval: TR(|Z|) -> |Z|. Now, because I realize that what I intended to write requires a few more pages, I break for now. What more is needed at this juncture is the structure of the "free ring on generators G", where G is just a set, and not the underlying set of any ring. One more remark: A ring is not any old X, with arbitrary |X|, and arbitrary eval: TR(|Z|) -> |Z|. A ring is required to obey "universal equations", also called "identities". Here is one ring identity: for any term t eval((* 1 t)) = eval t Oi, surface notation/syntax!, we have left out perhaps one, two, three maybe more tick marks, or not, oi. OK, this must be done better, but in high school notation^Wrhetoric the identity reads forall x (1 * x = x) Here implicitly the "variable x" ranges over all elements of |Z|, that is, the set of integers. Please forgive incomprehensibility, by reason of compression, of this squib! Perhaps more in a bit, perhaps just some pointers to stuff published on the Net. I remain, as ever, your fellow student of Haskell and Haskell blog posts, Jay Sulzberger > Sent: Friday, December 08, 2017 at 8:07 AM From: "Manny > Romero""/usr/lib/scm/Init5f2.scm": (x) (#@@eval (#@@copy-tree #@x))> > (define minus2 -2) # > '(+ (- minus2) (* 6 (+ (+ 13 13) minus2))) (+ (- minus2) (* 6 (+ (+ 13 13) minus2))) > (eval '(+ (- minus2) (* 6 (+ (+ 13 13) minus2)))) 146 > (quit) Process scheme finished

what="example term evaluated using Aubrey Jaffer's scm, > with Jay Sulzberger's prelude, running atop > Emacs with quack loaded" > date="Friday 8 December 2017 21:46:01 -0500"> > > > eval > #> > Please forgive incomprehensible details, which appear due to > traditional arrangements of the usual sort of Lisp repl. > > Let us repeat what we claim: > > The ring Z can be specified by giving its carrier |Z|, which is just > the set of integers, and the set of ring terms TR(|Z|), and the map > eval: TR(|Z|) -> |Z|. > > Now, because I realize that what I intended to write requires a > few more pages, I break for now. What more is needed at this > juncture is the structure of the "free ring on generators G", > where G is just a set, and not the underlying set of any ring. > > One more remark: A ring is not any old X, with arbitrary |X|, and > arbitrary eval: TR(|Z|) -> |Z|. A ring is required to obey > "universal equations", also called "identities". Here is one ring identity: > > for any term t > > eval((* 1 t)) = eval t > > Oi, surface notation/syntax!, we have left out perhaps one, two, > three maybe more tick marks, or not, oi. OK, this must be done > better, but in high school notation^Wrhetoric the identity reads > > forall x (1 * x = x) > > Here implicitly the "variable x" ranges over all elements of |Z|, > that is, the set of integers. > > Please forgive incomprehensibility, by reason of compression, of > this squib! > > Perhaps more in a bit, perhaps just some pointers to stuff > published on the Net. > > I remain, as ever, your fellow student of Haskell and Haskell blog posts, > Jay Sulzberger > > > >> Sent: Friday, December 08, 2017 at 8:07 AM From: "Manny >> Romero""/usr/lib/scm/Init5f2.scm": (x) (#@@eval (#@@copy-tree > #@x))> > > (define minus2 -2) > # > > '(+ (- minus2) (* 6 (+ (+ 13 13) minus2))) > (+ (- minus2) (* 6 (+ (+ 13 13) minus2))) > > (eval '(+ (- minus2) (* 6 (+ (+ 13 13) minus2)))) > 146 > > (quit) > > Process scheme finished > >