[Haskell-cafe] The Good, the Bad and the GUI
Raphaël Mongeau
raphaelsimeon at gmail.com
Thu Aug 14 17:22:34 UTC 2014
Would't this be a good solution to the partial null fields probleme?
--The field name and the value
type Field = (String,String)
--The form informations we get from the client
type FormResult = [Filed]
--An error message to send to teh client
type FormError = String
data Person = Person {
firstName :: String
,lastName :: String
,birthDate :: Date
,height :: Int
}
type PersonParseResult = Either FormError Person
--When receiving data froom the client you call this function and return
the error to the client or continue normaly
getPersonneFromForm :: FormResult -> PersonParseResult
--You could go furter and do this:
class FromForm a where
fromForm :: FormResult -> Either FormError a
instance FromForm Person where
fromForm a = getPersonneFromForm a
--And then you could do this:
thisFunctionGetAForm :: FormResult -> HTTPResponse
thisFunctionGetAForm f =
case (fromForm f) :: PersonParseResult of
Left a -> toHTTPResponse "The form is invalid"
Right a -> toHTTPResponse "Ok, we got you"
2014-08-14 11:11 GMT-04:00 Wojtek Narczyński <wojtek at power.com.pl>:
> On 14.08.2014 16:44, ok at cs.otago.ac.nz wrote:
>
>> It may be familiar, it may be popular, but the answer
>> is beyond any reasonable question simply WRONG.
>>
>
> The exactly advantage of a purpose built app over a spreadsheet is that it
> would not let you save the invoice in this state. Indeed, perhaps it is a
> good idea to tell the users that this sum is not their final value. For
> example display a marijuana leaf next to it. Although, I would rather use
> color for that.
>
>
> (The emphasis on NEVER is mine.) I guess now we know one
>> more reason why spreadsheet errors are ubiquitous: the
>> interface is broken by design.
>>
>
> I like spreadsheets, but they are not an answer to every need.
>
>
>
>> I have no idea what is customary, but I for d--n sure would not
>> use a spreadsheet to do it! (This being a Haskell mailing list,
>> I would investigate the abilities of hLedger.)
>>
>
> Sorry, hledger is a double entry accounting system, it does not issue
> invoices.
>
>
> So in the end you admit that my "design" (scratch, rather) might be what
>>> young people might like?
>>>
>> On the contrary. You are specifying a design that lets invalid data
>> enter into computations. I'm saying they would like a design that
>> stops invalid data as early as possible. This is close in spirit
>> to the Foo/FooBuilder distinction, where a Foo is never allowed to
>> be in an invalid state.
>>
>>
>> Pardon me, but are you "young people"?
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
--
Viva Cila
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140814/874f6b57/attachment.html>
More information about the Haskell-Cafe
mailing list