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

From: Jeffrey Brown <jeffbrown.the_at_gmail.com>
Date: Sun, 18 Nov 2018 22:49:53 -0500

Awesome! Thanks, Sergio!

On Sun, Nov 18, 2018 at 10:24 PM <h7sa_at_pdx.edu> wrote:

> 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 '. O=
nce 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.d=
e
>
>

--
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
Received on Mo Nov 19 2018 - 18:07:12 CET

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