XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] RE: Declarative programming requires a different mindset

It is perfectly possible to express what ammounts to "sequential
exacution" in an FP language.

Read about Monads (or the Monad type class in Haskell).

Or, as Simon-Peyton Jones once put it, "Haskell is the finest
imperative language"

 :)

Notice that operations with side effects can be safely used in an FP
language, given the necessary discipline (in Haskell the language
itself provides syntactic sugar for using Monads). For a known
example, get acquainted in how the XQuery Update Facility is defined
in a way that does not alter the functional nature of XQuery.

-- 
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play


On Wed, Mar 24, 2010 at 4:49 AM, Costello, Roger L. <costello@mitre.org> wrote:
> Hi Folks,
>
>
>
> It is my understanding that a key characteristic of declarative programming
> is that statements can be executed in any order, even in parallel. Do you
> agree?
>
>
>
> If yes, then anything which forces sequential processing is, by definition,
> not declarative. Do you agree?
>
>
>
> At the bottom of this message is a variable, namespace-map, which is then
> used by the second variable. The first variable must be created _before_ the
> second variable. Thus, a sequential processing is required and therefore it
> is not declarative.
>
>
>
> Wait. That can’t be right.
>
>
>
> Then I can’t create building blocks which can be used to create larger
> building blocks. The first variable is a building block that the second
> variable builds upon. Surely, assembling building blocks is important in
> declarative programming?
>
>
>
> What is the right way to think about variables that use other variables? Is
> it bad, from a declarative programming perspective?
>
>
>
> <xsl:variable name="namespace-map"
>
>      select="document('')/*//f:namespace-map
>
>          [f:input-document/f:namespace=$ns]" />
>
>
>
> <xsl:variable name="use-this-namespace"
>
>       select="$namespace-map/f:output-document/f:namespace" />
>
>
>
> /Roger


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS