[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: RE: Declarative programming requires a different mindset

  • From: Dimitre Novatchev <dnovatchev@gmail.com>
  • To: "Costello, Roger L." <costello@mitre.org>
  • Date: Wed, 24 Mar 2010 08:20:57 -0700

Re:  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]


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.