[Template-haskell] Pattern matching against lists.

Simon Peyton-Jones simonpj@microsoft.com
Mon, 26 May 2003 13:17:22 +0100


| > reading through THSyntax.hs I can find no way of matching against
| > lists when creating functions. Is there something obvious that I've
| > missed or is this something that is relly missing?

What's wrong with

	[d| f (x:xs) =3D x |]
or
	[| \ (x:xs) -> x |]

Simon

| >
| > /Hampus
|=20
| Experimentation is a wonderful thing. (Though so is documentation ;)
|    ___         ___ _
|   / _ \ /\  /\/ __(_)
|  / /_\// /_/ / /  | |      GHC Interactive, version 5.05
| / /_\\/ __  / /___| |      http://www.haskell.org/ghc/
| \____/\/ /_/\____/|_|      Type :? for help.
|=20
| Loading package base ... linking ... done.
| Prelude> :set -package haskell-src
| Loading package haskell98 ... linking ... done.
| Loading package haskell-src ... linking ... done.
| Prelude> :set -fglasgow-exts
| Prelude> :m Language.Haskell.THSyntax
| Prelude Language.Haskell.THSyntax>
| Prelude Language.Haskell.THSyntax> runQ [d| foo (x:_) =3D x |] >>=3D =
print
| [Fun "foo" [Clause [Pcon "GHC.Base::" [Pvar "x'0",Pwild]] (Normal (Var
| "x'0")) []]]
| Prelude Language.Haskell.THSyntax>
|=20
| _______________________________________________
| template-haskell mailing list
| template-haskell@haskell.org
| http://www.haskell.org/mailman/listinfo/template-haskell