Send Beginners mailing list submissions to
        beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        beginners-requ...@haskell.org

You can reach the person managing the list at
        beginners-ow...@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1. Re:  (no subject) (Jamie F Olson)
   2. Re:  (no subject) (Brandon Allbery)
   3. Re:  can't make distribution,     requires rerunning ./configure
      (Karl Voelker)
   4. Re:  (no subject) (Daniel Trstenjak)


----------------------------------------------------------------------

Message: 1
Date: Thu, 28 Mar 2013 22:34:26 +0000 (UTC)
From: Jamie F Olson <jamie.f.ol...@gmail.com>
Subject: Re: [Haskell-beginners] (no subject)
To: beginners@haskell.org
Message-ID: <loom.20130328t233341-...@post.gmane.org>
Content-Type: text/plain; charset=us-ascii

David McBride <toad3k <at> gmail.com> writes:

> 
> data JSValue = ... | JSObject (JSObject JSValue) | ...
> 

Thank you! I think the two strange things as an outsider particularly from more 
OO languages are that types aren't objects, and then the strangeness of the 
naming convention.

Would it have been legal to define data JSValue as something like this instead?

data JSValue
    = JSValue
    | JSValue     !Bool
    | JSValue !Rational
    | JSValue   JSString
    | JSValue    [JSValue]
    | JSValue   (JSObject JSValue)





------------------------------

Message: 2
Date: Thu, 28 Mar 2013 18:38:41 -0400
From: Brandon Allbery <allber...@gmail.com>
Subject: Re: [Haskell-beginners] (no subject)
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Message-ID:
        <CAKFCL4XMO_r=pvsykpct08vyb8ap5za3enjvams1levzdgo...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

On Thu, Mar 28, 2013 at 6:34 PM, Jamie F Olson <jamie.f.ol...@gmail.com>wrote:

> Would it have been legal to define data JSValue as something like this
> instead?
>
> data JSValue
>     = JSValue
>     | JSValue     !Bool
>     | JSValue !Rational
>     | JSValue   JSString
>     | JSValue    [JSValue]
>     | JSValue   (JSObject JSValue)


No; the data constructor used tells it what to expect afterward.

-- 
brandon s allbery kf8nh                               sine nomine associates
allber...@gmail.com                                  ballb...@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20130328/4258f873/attachment-0001.htm>

------------------------------

Message: 3
Date: Fri, 29 Mar 2013 00:05:07 -0700
From: Karl Voelker <ktvoel...@gmail.com>
Subject: Re: [Haskell-beginners] can't make distribution,       requires
        rerunning ./configure
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Message-ID:
        <CAFfow0y4eMGdVTAVgAdj0FNh0qo2L1dVjwAu=Ro6AnX7Hw=o...@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

This isn't exactly an answer to your question, but have you considered
using the Haskell Platform (which is recommended for most purposes) or a
GHC binary package?

http://www.haskell.org/platform/
http://www.haskell.org/ghc/download_ghc_7_6_2#binaries

-Karl


On Thu, Mar 28, 2013 at 9:37 AM, Josh Stratton <strattonbra...@gmail.com>wrote:

> I recently downloaded the ghc distribution for Linux (x86_64) and had
> difficulty installing to my machine.  The configure step seems to have
> completed successfully, but when I run the followup "make install", it
> fails suggesting that I haven't run the configure command yet.
>
> atlas => ./configure --prefix=/opt/ghc
> checking for path to top of build tree... /tmp/ghc-7.6.2
> Build platform inferred as: x86_64-unknown-linux
> Host platform inferred as: x86_64-unknown-linux
> Target platform inferred as: x86_64-unknown-linux
> GHC build  : x86_64-unknown-linux
> GHC host   : x86_64-unknown-linux
> GHC target : x86_64-unknown-linux
> checking for perl... /rel/map/generic-2012.18.last/bin/perl
> checking if your perl works in shell scripts... yes
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether ln -s works... yes
> checking for gsed... sed
> checking for gcc... /usr/bin/gcc
> checking for gcc... /usr/bin/gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether /usr/bin/gcc accepts -g... yes
> checking for /usr/bin/gcc option to accept ISO C89... none needed
> checking version of gcc... 4.4.6
> checking how to run the C preprocessor... /usr/bin/gcc -E
> checking whether ld understands --hash-size=31...
> checking whether ld understands --reduce-memory-overheads...
> checking for extra options to pass gcc when compiling via C...  -fwrapv
> checking Setting up CFLAGS, LDFLAGS, IGNORE_LINKER_LD_FLAGS and
> CPPFLAGS... done
> checking Setting up CONF_CC_OPTS_STAGE0, CONF_GCC_LINKER_OPTS_STAGE0,
> CONF_LD_LINKER_OPTS_STAGE0 and CONF_CPP_OPTS_STAGE0... done
> checking Setting up CONF_CC_OPTS_STAGE1, CONF_GCC_LINKER_OPTS_STAGE1,
> CONF_LD_LINKER_OPTS_STAGE1 and CONF_CPP_OPTS_STAGE1... done
> checking Setting up CONF_CC_OPTS_STAGE2, CONF_GCC_LINKER_OPTS_STAGE2,
> CONF_LD_LINKER_OPTS_STAGE2 and CONF_CPP_OPTS_STAGE2... done
> checking for .subsections_via_symbols... no
> checking whether your assembler supports .ident directive... yes
> checking for GNU non-executable stack support... yes
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking size of void *... 8
> checking for ar... /usr/bin/ar
> checking whether /usr/bin/ar is GNU ar... yes
> checking for ar arguments... q
> checking whether ranlib is needed... no
> configure: creating ./config.status
> config.status: creating settings
> config.status: creating mk/config.mk
> config.status: creating mk/install.mk
> ****************************************************
> Configuration done, ready to 'make install'
> (see README and INSTALL files for more info.)
> ****************************************************
>
>                                                               atlas => make
> install
> make -r --no-print-directory -f ghc.mk install BINDIST=YES
> NO_INCLUDE_DEPS=YES
> ghc.mk:122: *** Please run ./configure first.  Stop.
> make: *** [install] Error 2
>
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20130329/0625fdea/attachment-0001.htm>

------------------------------

Message: 4
Date: Fri, 29 Mar 2013 10:20:26 +0100
From: Daniel Trstenjak <daniel.trsten...@gmail.com>
Subject: Re: [Haskell-beginners] (no subject)
To: beginners@haskell.org
Message-ID: <20130329092026.GA2542@machine>
Content-Type: text/plain; charset=us-ascii


Hi Jamie,

On Thu, Mar 28, 2013 at 10:34:26PM +0000, Jamie F Olson wrote:
> Thank you! I think the two strange things as an outsider particularly from 
> more 
> OO languages are that types aren't objects, and then the strangeness of the 
> naming convention.

In C++ you could have something like:

class JSObject {
   public:
      typedef std::map<std::string, JSValue> Map_t;
      static JSObject JSONObject(const Map_t& m);
      ...
};

class JSValue {
   public:
      static JSValue JSNull();
      static JSValue JSBool(bool b);
      static JSValue JSObject(const JSObject& obj);
      ...
};


The data constructors of Haskell have some similarity to these constructor 
functions.


Greetings,
Daniel



------------------------------

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners


End of Beginners Digest, Vol 57, Issue 41
*****************************************

Reply via email to