caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] AST and "when"
@ 2003-01-29 11:20 Mike Potanin
  2003-01-29 14:33 ` Olivier Andrieu
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Potanin @ 2003-01-29 11:20 UTC (permalink / raw)
  To: caml-list


Can CamlP4 make "when" in pattern?

# <:patt< a when a<0 >>;;
            ^^^^
While expanding quotation "patt":
Parse error: end of input expected after [pattern] (in [pattern])
# <:expr< let p x = match x with a when a<0 -> 1 | b -> b in p z >>;;
                                   ^^^^
While expanding quotation "expr":
Parse error: '->' expected after [ipatt] (in [expression])


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] AST and "when"
  2003-01-29 11:20 [Caml-list] AST and "when" Mike Potanin
@ 2003-01-29 14:33 ` Olivier Andrieu
  2003-01-29 15:33   ` Mike Potanin
  0 siblings, 1 reply; 5+ messages in thread
From: Olivier Andrieu @ 2003-01-29 14:33 UTC (permalink / raw)
  To: Mike Potanin; +Cc: caml-list

 Mike Potanin [Wednesday 29 January 2003] :
 > Can CamlP4 make "when" in pattern?
 > 
 > # <:expr< let p x = match x with a when a<0 -> 1 | b -> b in p z >>;;
 >                                    ^^^^
 > While expanding quotation "expr":
 > Parse error: '->' expected after [ipatt] (in [expression])

That should be :
<:expr< let p x = match x with [ a when a<0 -> 1 | b -> b ] in p z >>

AST quotations use the revised syntax.

-- 
   Olivier
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] AST and "when"
  2003-01-29 14:33 ` Olivier Andrieu
@ 2003-01-29 15:33   ` Mike Potanin
  2003-01-29 15:43     ` Olivier Andrieu
  0 siblings, 1 reply; 5+ messages in thread
From: Mike Potanin @ 2003-01-29 15:33 UTC (permalink / raw)
  To: caml-list

On Wed, 29 Jan 2003, Olivier Andrieu wrote:

>  Mike Potanin [Wednesday 29 January 2003] :
> That should be :
> <:expr< let p x = match x with [ a when a<0 -> 1 | b -> b ] in p z >>
>
> AST quotations use the revised syntax.

Thank you!
Can I use <:patt< ... >> for this resalt?

(MLast.PaLid ((0, 0), "a"),
  Some
   (MLast.ExApp ((0, 0),
     MLast.ExApp ((0, 0), MLast.ExLid ((0, 0), "<"),
      MLast.ExLid ((0, 0), "a")),
     MLast.ExInt ((0, 0), "0")))

<:patt< a when a<0 >>
do not work.

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] AST and "when"
  2003-01-29 15:33   ` Mike Potanin
@ 2003-01-29 15:43     ` Olivier Andrieu
  2003-01-29 16:51       ` Mike Potanin
  0 siblings, 1 reply; 5+ messages in thread
From: Olivier Andrieu @ 2003-01-29 15:43 UTC (permalink / raw)
  To: Mike Potanin; +Cc: caml-list

 Mike Potanin [Wednesday 29 January 2003] :
 > On Wed, 29 Jan 2003, Olivier Andrieu wrote:
 > >  Mike Potanin [Wednesday 29 January 2003] :
 > > That should be :
 > > <:expr< let p x = match x with [ a when a<0 -> 1 | b -> b ] in p z >>
 > >
 > > AST quotations use the revised syntax.
 > 
 > Thank you!
 > Can I use <:patt< ... >> for this resalt?

I don't think so: in `a when a<0', only the first `a' is a pattern,
the when + expr is part of the `match' (or `try' or `function')
construct which is at the expression level.

 > (MLast.PaLid ((0, 0), "a"),
 >   Some
 >    (MLast.ExApp ((0, 0),
 >      MLast.ExApp ((0, 0), MLast.ExLid ((0, 0), "<"),
 >       MLast.ExLid ((0, 0), "a")),
 >      MLast.ExInt ((0, 0), "0")))

that's not a single pattern (MLast.patt), that's a tuple of type
`MLast.patt * MLast.expr option'

-- 
   Olivier
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] AST and "when"
  2003-01-29 15:43     ` Olivier Andrieu
@ 2003-01-29 16:51       ` Mike Potanin
  0 siblings, 0 replies; 5+ messages in thread
From: Mike Potanin @ 2003-01-29 16:51 UTC (permalink / raw)
  To: caml-list

On Wed, 29 Jan 2003, Olivier Andrieu wrote:

Whether I can make "formula" quotation so it compile
 match e with
  <:formula< sin(@x) ^ 2 + cos(@x) ^ 2 >> -> <:formula< 1 >>
to
 match e with
  (Sum [(Pow1 (Sin x) 2); (Pow1 (Cos x_temp) 2)]) when x==x_temp
     -> Const 1
Or I mast write
 match e with
  <:formula< sin(@x) ^ 2 + cos(@y) ^ 2 >> when x==y
     -> <:formula< 1 >>

>  Mike Potanin [Wednesday 29 January 2003] :
>
> I don't think so: in `a when a<0', only the first `a' is a pattern,
> the when + expr is part of the `match' (or `try' or `function')
> construct which is at the expression level.
>
>  > (MLast.PaLid ((0, 0), "a"),
>  >   Some
>  >    (MLast.ExApp ((0, 0),
>  >      MLast.ExApp ((0, 0), MLast.ExLid ((0, 0), "<"),
>  >       MLast.ExLid ((0, 0), "a")),
>  >      MLast.ExInt ((0, 0), "0")))
>
> that's not a single pattern (MLast.patt), that's a tuple of type
> `MLast.patt * MLast.expr option'

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-01-29 16:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-01-29 11:20 [Caml-list] AST and "when" Mike Potanin
2003-01-29 14:33 ` Olivier Andrieu
2003-01-29 15:33   ` Mike Potanin
2003-01-29 15:43     ` Olivier Andrieu
2003-01-29 16:51       ` Mike Potanin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).