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:  How to get HLint working? (Daniel Fischer)
   2. Re:  data design for a questionnaire (retitled +  update)
      (David McBride)
   3. Re:  How to get HLint working? (Brandon Allbery)


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

Message: 1
Date: Fri, 25 Nov 2011 03:19:36 +0100
From: Daniel Fischer <daniel.is.fisc...@googlemail.com>
Subject: Re: [Haskell-beginners] How to get HLint working?
To: beginners@haskell.org
Cc: Avery Robinson <av...@averyrobinson.name>
Message-ID: <201111250319.36178.daniel.is.fisc...@googlemail.com>
Content-Type: Text/Plain;  charset="utf-8"

On Friday 25 November 2011, 02:35:52, Avery Robinson wrote:
> Hello,
> 
> I'm trying to install HLint but I can't figure out how to use it. It
> seems like the install works, but when I type "hlint file.hs" my
> terminal gives an error. Here's a copy of my terminal output:
> http://pastebin.com/n071J2mL
> 
> It looks like the install works, but at the end you can see that it
> doesn't function as I am expecting. I'm having difficulty finding
> relevant documentation. Help please?

Is

/Users/averyrobinson/Library/Haskell/ghc-7.0.3/lib/hlint-1.8.18/bin

in your path?
Probably not, that directory was likely only created when hlint was first 
installed.
That's an odd configuration for cabal to create a new directory for an 
executable to install in.

I suggest letting cabal install executables in ~/.cabal/bin (edit your 
~/.cabal/config, the install-dirs stanzas; and add that to your path), or, 
if you wish some other directory in your path.




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

Message: 2
Date: Thu, 24 Nov 2011 22:07:51 -0500
From: David McBride <toa...@gmail.com>
Subject: Re: [Haskell-beginners] data design for a questionnaire
        (retitled +     update)
To: Alia <alia_kho...@yahoo.com>
Cc: "beginners@haskell.org" <beginners@haskell.org>
Message-ID:
        <can+tr43ts+nbdr42sxjgm67uqk8jloslc4ewtdh2kh0gipb...@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

Why not have:

data Question = Question
    { questionName    :: Name
    , questionText    :: QuestionText
    , questionType    :: QuestionType
    , answerFunc      :: (String -> AnswerType)
    , correctAnswer   :: Maybe AnswerType
    , options         :: Maybe [Option AnswerType]
    } deriving (Show)

data AnswerType = AnsD Double | AnsS String | AnsI Integer deriving (Show, Read)

Then, I'd personally make another change, why would you have a flat
structure with a questionType and then optional correctAnswer and
options fields?  There's no type safety in that.  I'd try:

data Answer = StraightAnswer (String -> AnswerType) | MultipleChoice
AnswerType [Option AnswerType]

data Question = Question
    { questionName    :: Name
    , questionText    :: QuestionText
    , answerFunc      :: (String -> AnswerType)
    , answer              :: Answer
    } deriving (Show)

If you are storing answers as string, just store them as "AnsD 5.589",
"AnsS \"Constantiople\"".  Then with the read instance you can go:

let answer = read x :: AnswerType

On Thu, Nov 24, 2011 at 4:52 PM, Alia <alia_kho...@yahoo.com> wrote:
>
> Peter Hall wrote:
>> Might this be easier if you made all the answers strings? If you need to
>> permit things like 0.5 vs .5 you could instead > use a String->String
>> normalisation function which could vary with the "type" of the answer but
>> not affect the data type > of the question.
>> It would also be easier to use strings if you wanted to store the
>> questions in a database or load from a file.
>
> Indeed that is exactly how I do it. All user entered answers are stored as
> strings, and are converted to the
> appropriate type by an answerFunc (see below) and compared against correct
> answers. The purpose of the
> answerFunc is simply to convert (String -> type of answer) and can include
> normalization if required.
> Fyi, the complete schema is as follows:
>
> data QuestionType?? = Open
> ??????????????????? | Test
> ??????????????????? | Choice
> ????????????????????? deriving (Show, Eq)
>
> data Question a = Question
> ??? { questionName??? :: Name
> ??? , questionText??? :: QuestionText
> ??? , questionType??? :: QuestionType
> ??? , answerFunc????? :: (String -> a)
> ??? , correctAnswer?? :: Maybe a
> ??? , options???????? :: Maybe [Option a]
> ??? } deriving (Show)
>
> data Question' = QuestionS (Question String)
> ?????????????? | QuestionI (Question Int)
> ?????????????? | QuestionD (Question Double)
> ???????????????? deriving (Show)
>
> data QuestionSet = QuestionSet
> ??? { qsetTitle???? :: String
> ??? , qsetQuestions :: [Question']
> ??? , qsetPoints??? :: Double
> ??? } deriving (Show)
>
> data Survey = Survey
> ??? { surveyTitle??????? :: String
> ??? , surveyQuestionSets :: [QuestionSet]
> ??? } deriving (Show)
>
>
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>



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

Message: 3
Date: Fri, 25 Nov 2011 00:11:48 -0500
From: Brandon Allbery <allber...@gmail.com>
Subject: Re: [Haskell-beginners] How to get HLint working?
To: Daniel Fischer <daniel.is.fisc...@googlemail.com>
Cc: beginners@haskell.org, Avery Robinson <av...@averyrobinson.name>
Message-ID:
        <CAKFCL4Xg_p_z-=rycejwqfkek2ywfkdrs7uca968tgfg8iw...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

On Thu, Nov 24, 2011 at 21:19, Daniel Fischer <
daniel.is.fisc...@googlemail.com> wrote:

> Is
>
> /Users/averyrobinson/Library/Haskell/ghc-7.0.3/lib/hlint-1.8.18/bin
>
> in your path?
> Probably not, that directory was likely only created when hlint was first
> installed.
> That's an odd configuration for cabal to create a new directory for an
> executable to install in.
>

Yes, but Haskell Platform cabal on OS X does that sometimes (I haven't
figured out the logic behind when it does so and when it uses
~/Library/Haskell/bin --- note, *not* ~/.cabal/bin, H-P changed the paths
for OS X), but I also haven't tried very hard to figure it out.

-- 
brandon s allbery                                      allber...@gmail.com
wandering unix systems administrator (available)     (412) 475-9364 vm/sms
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://www.haskell.org/pipermail/beginners/attachments/20111125/b8337ecc/attachment-0001.htm>

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

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


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

Reply via email to