From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: The state of functional programming
Date: Thu, 29 Jul 2010 23:46:54 +0300
Date: 2010-07-29T23:46:54+03:00 [thread overview]
Message-ID: <8be7luFbvaU1@mid.individual.net> (raw)
In-Reply-To: <Xns9DC49BF262AB5WarrensBlatherings@81.169.183.62>
Warren wrote:
> Dmitry A. Kazakov expounded in
> news:a3iznu9uq49d$.1m9cupr81yhut$.dlg@40tude.net:
>
>> On Thu, 29 Jul 2010 15:20:48 +0000 (UTC), Warren wrote:
> ..
>>> I think you missed my point - perhaps it wasn't expressed
>>> clearly.
>>>
>>> As I understand it, a FP tries to determine conclusions
>>> from a universe of facts, given some inputs. For smaller
>>> problems this can be _exhaustively_ analyzed and results
>>> obtained.
>> And so does any declarative language. You declare some facts in
>> whatever form (as relations, as connections of blocks etc, for that
>> matter, as types in a strongly typed languages like Ada). The system
>> infers from them some executable code.
>
> No, there is a big difference here.
>
> In a non-FP language (Ada), you can solve _any_ problem so long
> as you code it (you are coding the "how"). IOW, you have
> solved the problem and specified it in code.
>
> In FP, you define the "problem" (instead) and require from
> it a solution. But FP cannot always solve that "problem".
Warren, I think your description or understanding of FP matches "logic
programming" or "constraint programming" rather than "functional
programming".
FP programs do specify "how" to compute a solution, although the FP
compiler or interpreter may have to transform the "how" in smart ways to
make it computable on resource-limited machines -- for example, by
converting tail recursion to iteration, or by using lazy evaluation to
avoid infinitely large intermediate results. Proving termination of
functional programs is similar to proving termination of recursive
imperative programs.
It is in logic programming and constraint programming that the
programmer enters facts, rules, and a goal, and the program searches for
solutions (proofs or realisations of the goal) in some way that is not
explicitly encoded in the program.
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2010-07-29 20:46 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2adc4d8d-210e-429c-8188-9b1e99c2718e@d17g2000yqb.googlegroups.com>
2010-07-28 16:16 ` The state of functional programming Georg Bauhaus
2010-07-28 19:37 ` Kulin Remailer
2010-07-28 23:34 ` deadlyhead
2010-07-28 16:31 ` Jeffrey R. Carter
2010-07-28 23:35 ` J.s
2010-07-28 16:40 ` Dmitry A. Kazakov
2010-07-28 17:47 ` (see below)
2010-07-28 18:40 ` Dmitry A. Kazakov
2010-08-03 3:15 ` Randy Brukardt
2010-08-03 13:57 ` (see below)
2010-07-28 19:09 ` Warren
2010-07-28 19:35 ` Dmitry A. Kazakov
2010-07-29 15:20 ` Warren
2010-07-29 17:00 ` Dmitry A. Kazakov
2010-07-29 19:19 ` Warren
2010-07-29 20:40 ` Dmitry A. Kazakov
2010-07-29 21:01 ` Warren
2010-07-29 23:09 ` Georg Bauhaus
2010-07-30 8:50 ` Dmitry A. Kazakov
2010-07-30 9:17 ` Niklas Holsti
2010-07-30 9:29 ` Dmitry A. Kazakov
2010-07-29 20:46 ` Niklas Holsti [this message]
2010-07-30 13:52 ` Warren
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox