Prev: Hide application from activities list
Next: hacking
From: David Brown on 14 Jan 2010 03:00 Walter Banks wrote: > > dj3vande(a)csclub.uwaterloo.ca.invalid wrote: > >> Why bother to compile it? Just have it interpret on-the-fly. >> That way you could even run it in interactive mode, and it's >> sufficiently high-level that even non-programmers could usefully use >> it. > > Dave, > > There are languages like that. LOGO for example is a functional > language that is capable of interactively solving some very tough > problems. > I can't think which language you mean here, but it's not LOGO - unless there are two different languages called LOGO. LOGO is targeted as a learning language appealing to kids - it is a simple interpreted procedural language tightly tied to a turtle graphics display. > After some applications are developed a stable runnable version > of the application is desired including changing the format of the > solution to prevent changes. > > Regards, > > -- > Walter Banks > Byte Craft Limited > http://www.bytecraft.com > > > > > >
From: Keith Thompson on 14 Jan 2010 03:28 Walter Banks <walter(a)bytecraft.com> writes: > dj3vande(a)csclub.uwaterloo.ca.invalid wrote: >> Why bother to compile it? Just have it interpret on-the-fly. >> That way you could even run it in interactive mode, and it's >> sufficiently high-level that even non-programmers could usefully use >> it. > > There are languages like that. LOGO for example is a functional > language that is capable of interactively solving some very tough > problems. Are you thinking of Prolog? [...] -- Keith Thompson (The_Other_Keith) kst-u(a)mib.org <http://www.ghoti.net/~kst> Nokia "We must do something. This is something. Therefore, we must do this." -- Antony Jay and Jonathan Lynn, "Yes Minister"
From: Richard Tobin on 14 Jan 2010 05:24 In article <lneiltf5uo.fsf(a)nuthaus.mib.org>, Keith Thompson <kst-u(a)mib.org> wrote: >> There are languages like that. LOGO for example is a functional >> language that is capable of interactively solving some very tough >> problems. >Are you thinking of Prolog? Prolog would not usually be described as a functional language. Logo on the other hand *is* a functional language. Not a pure functional language, but few are. It's possible to write functional programs in almost any computer language. Calling something a functional language is more about how it's typically used (or intended to be used) than about what can be done with it. Logo certainly emphasises the solving of problems by calling functions, often with recursion. Prolog's characteristic features are its use of unification and backtracking search, and it is naturally described as a logic programming language. -- Richard -- Please remember to mention me / in tapes you leave behind.
From: David Brown on 14 Jan 2010 06:51 Richard Tobin wrote: > In article <lneiltf5uo.fsf(a)nuthaus.mib.org>, > Keith Thompson <kst-u(a)mib.org> wrote: > >>> There are languages like that. LOGO for example is a functional >>> language that is capable of interactively solving some very tough >>> problems. > >> Are you thinking of Prolog? > > Prolog would not usually be described as a functional language. Prolog is most often described as a logical language, rather than a functional language. Typically you define various types of relationships and propositions, give the system some facts, and then ask it some questions that it can infer from the facts and rules. But if you are using it for more general programming, you use a style typical of functional programming languages - the emphasis is on stating the desired results, rather than on how the system is to calculate those results. I also thought Walter meant Prolog - there are certainly types of problem that can be solved much more naturally with Prolog than with imperative languages. > Logo on the other hand *is* a functional language. Not a pure > functional language, but few are. > I've heard Logo described as a functional language before, but I disagree. To be a functional programming language, functions should be first class objects - i.e., functions that take other functions as arguments, and return new functions, should be a natural part of the language and typical programs. States and global data should not exist in a pure functional programming language (though as you say, few are pure), and the language should be amenable to mathematical manipulation and proof (having no state makes this much easier). In practice, Logo is almost always used in the context of teaching, and with turtle graphics. Few people use it beyond the stage of simple procedures. The reason I think Walter does not mean Logo is that I can't think of any features it has that would make it a good choice for general programming or the "tough problems" he mentioned. It is a great language for its purpose, but not for tough problems. > It's possible to write functional programs in almost any computer > language. Calling something a functional language is more about how > it's typically used (or intended to be used) than about what can be > done with it. I agree mostly, although I think being a functional programming language is just as much about what the language /cannot/ do as what it can do. Having no states or variables may sound like a serious limitation to many people, but it actually gives you the power to do far more reasoning about the program (and it gives the compiler the same power). It is harder to make good implementations of a functional language than of an imperative language, but there is the potential to do a better job. > Logo certainly emphasises the solving of problems by > calling functions, often with recursion. Prolog's characteristic > features are its use of unification and backtracking search, and it > is naturally described as a logic programming language. > > -- Richard
From: Walter Banks on 14 Jan 2010 08:38
David Brown wrote: > Walter Banks wrote: > > > There are languages like that. LOGO for example is a functional > > language that is capable of interactively solving some very tough > > problems. > > > > I can't think which language you mean here, but it's not LOGO - unless > there are two different languages called LOGO. LOGO is targeted as a > learning language appealing to kids - it is a simple interpreted > procedural language tightly tied to a turtle graphics display. We are thinking of the same language. It is associated with kids, MIT lego lab, LCSI and learning. It also fits the category of a language that users describe objectives. After the turtle has stopped drawing squares and hilbert curves there is a very nice tool to solve some complex problems. A little like lisp without the brackets. I used LOGO to solve some multibody gravitational problems a few years ago. Regards, -- Walter Banks Byte Craft Limited http://www.bytecraft.com |