On Mon, Dec 16, 2002 at 02:17:05PM -0500, David Teague wrote: >... > Craig and others > > Having "undesirable" featuers such as maintaining state or having > dynamic scoping, does not make a language not be functional. The
I'll agree to disagree on that semantic point. (You could say that you've written a functional _program_ in language X, but I wouldn't say that makes X a functional language.) > Unfortunately they added some ketchup to the caviar by introducing the > state maintaining looping, sequencing, assignment, and binding of > functions and data to identifiers to Scheme. Assignment of course. But what non-FP looping does Scheme have, and why is binding and sequencing non-FP? (Sequencing isn't useful in a FP language, but there's nothing imperative about it.) > I believe these and I/O are the only imperative features of scheme, > and (less certain) believe they are the only imperative features of > lisp. Er... Assignment/mutation and I/O are the only imperative features of any language. (Statements (as opposed to expressions) don't count: You could add them to a FP language without making it non-FP, you would just never have a use for them. (Of course, if I understand your use of "functional language", you could add anything imaginable to a language and still call it functional...)) --Pete -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]