[curry] Re: Specifying default rules: Why and how?

From: <h7sa_at_pdx.edu>
Date: Sun, 18 Nov 2018 19:24:30 -0800

Hi Jeff

Answered on Stackoverflow. Good question. The tutorial should be clear about using the preprocessor. Sorry.

Sergio

On Sun, 18 Nov 2018, at 19:50, Jeffrey Brown <jeffbrown.the_at_gmail.com> wrote:

> I posted this question on Stackoverflow[1] yesterday and haven't received
> any answers yet. I've duplicated the question below, but an answer posted
> to StackOverflow would be more useful to future students, if you're so
> inclined.
>
> Thanks!
>
> ---
>
> In section 3.5.6 of the Curry tutorial (pdf)
> <https://www.informatik.uni-kiel.de/~curry/tutorial/tutorial.pdf>, we are
> advised to use default rules to "regain control after a failed search". The
> following example is given. (For clarity I have added a type signature and
> curried the input.)
>
> lookup :: k -> [(k,v)] -> Maybe v
> lookup key (_++[(key,value)]++_ ) = Just value
> lookup’default _ _ = Nothing
>
> I can't get that to compile unless I replace the ’ with a '. Once I do, it
> behaves like this:
>
> test> test.lookup 1 [(2,3)]
> *** No value found!
>
> Question 1: What is the default declaration for?
>
> Why would you need to specify that a particular clause is the default one?
> Won't it be arrived at one way or another, once the others fail?
> Question 2: How is it written? Should it be written at all?
>
> If instead I drop the string 'default:
>
> lookup :: k -> [(k,v)] -> Maybe v
> lookup key (_++[(key,value)]++_ ) = Just value
> lookup _ _ = Nothing
>
> it behaves as intended:
>
> test> test.lookup 1 [(2,3)]
> Nothing
> test>
>
> Has the 'default syntax changed since the tutorial was written? Has it been
> removed altogether?
> [1]
> https://stackoverflow.com/questions/53357361/specifying-default-rules-in-the-curry-language-why-and-how
>
> --
> Jeff Brown | Jeffrey Benjamin Brown
> Website <https://msu.edu/~brown202/> | Facebook
> <https://www.facebook.com/mejeff.younotjeff> | LinkedIn
> <https://www.linkedin.com/in/jeffreybenjaminbrown>(spammy, so I often miss
> messages here) | Github <https://github.com/jeffreybenjaminbrown>

> _______________________________________________
> curry mailing list -- curry_at_lists.rwth-aachen.de
> To unsubscribe send an email to curry-leave_at_lists.rwth-aachen.de
> https://lists.rwth-aachen.de/postorius/lists/curry.lists.rwth-aachen.de
_______________________________________________
curry mailing list -- curry_at_lists.rwth-aachen.de
To unsubscribe send an email to curry-leave_at_lists.rwth-aachen.de
https://lists.rwth-aachen.de/postorius/lists/curry.lists.rwth-aachen.de
Received on Mo Nov 19 2018 - 18:07:10 CET

This archive was generated by hypermail 2.3.0 : Do Jun 20 2024 - 07:15:14 CEST