Where there is subtyping, "same" and "different" are not so clear. set-foo-bar!, foo-bar, and foo? are all "different" things at the level of "mutator", "selector", and "predicate", but they are the same thing one level of abstraction up, where they are all "functions" or "operators".
So we are not advocating lying; we're simply saying don't make more distinctions than necessary. The problem we're seeing is that, because students don't know these additional words, they are not getting *more* information, they are getting *significantly less*: they're being told in the errors about gidgets and whosies and whatchamacallits. Shriram On Fri, Jun 3, 2011 at 8:05 PM, Jay McCarthy <jay.mccar...@gmail.com> wrote: > Guillaume's homework is that students get confused with all the names > for the same things. IMHO, if there are different things, then they > should have different names. The students could still confuse the > things, and that would be bad for our classes. DrRacket calling the > different things the same thing would, IMHO, make it easier for > students to confuse the concepts, and that's worse. > > Jay > > 2011/6/3 Matthias Felleisen <matth...@ccs.neu.edu>: >> >> HtDP uses >> >> (define variable expression) >> (define (function-name parameter ...) function-body) >> --- function header --- >> (lambda (parameter ...) ... variable ...) >> >> but it also says that globally defined variables are constants until we hit >> ASL. Because then they aren't. >> >> ;; --- >> >> I think we should start with the reduced set of words that Guillaume et al >> have come up with and if we notice problems we should expand the vocabulary >> or revise it carefully. None of us has research to back up our opinions. At >> least Guillaume et al have done some homework here. We need to acknowledge >> this. >> >> >> >> >> >> On Jun 3, 2011, at 7:52 PM, Stephen Bloch wrote: >> >>> >>> On Jun 3, 2011, at 3:13 PM, Jay McCarthy wrote: >>> >>>> "Use ‘argument’ for actual arguments and ‘variable’ for formal >>>> arguments and in the body of the definition." >>>> >>>> I prefer argument and parameter name, because until ASL, they don't >>>> vary. But it seems you prefer just variable, because you don't want >>>> two terms for the things made by 'define' and the things made by >>>> 'lambda'? This is very bikesheddy, but I dislike your choice. >>> >>> I agree with Jay here. I explicitly address the distinction between >>> "argument" and "parameter" (i.e. formal argument) in _Picturing Programs_; >>> to me, "variable" (in *SL) means the <identifier> in (define <identifier> >>> <expr>), and its subsequent occurrences. >>> >>> >>> Stephen Bloch >>> sbl...@adelphi.edu >>> >>> >>> _________________________________________________ >>> For list-related administrative tasks: >>> http://lists.racket-lang.org/listinfo/dev >> >> > > > > -- > Jay McCarthy <j...@cs.byu.edu> > Assistant Professor / Brigham Young University > http://faculty.cs.byu.edu/~jay > > "The glory of God is Intelligence" - D&C 93 > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/dev _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev