On Tue, Jun 4, 2013 at 2:12 PM, David Nolen <[email protected]> wrote:
> I've looked at extractors a little bit, but I would need to investigate > further. Does this offer any more power than supporting arbitrary function > application in patterns? > The only advantage to function application is that you could conceivably memoize the results of the unapply because they are "not supposed" to be side-effecting. > > Also, I'm unlikely to dive into any feature addition related issues until > all these pressing bugs in JIRA are squashed. > No worries. I will not open a ticket at this time. I just want to put the idea out there. > > > On Tue, Jun 4, 2013 at 4:17 PM, David Pollak < > [email protected]> wrote: > >> Howdy David & Co., >> >> One of the *really* nice things about Scala's pattern matching is the >> ability to extend pattern matching using extractors. The research is >> presented in >> http://lampwww.epfl.ch/~emir/written/MatchingObjectsWithPatterns-TR.pdf >> >> The practical aspects allow testing and transforming at pattern matching >> time. For example: >> >> object AsInt { >> def unapply(in: String): Option[Int] = try {Some(in.toInt)} catch {case >> e: Exception => None} >> } >> >> foo match { >> case AsInt(number) => number + 1 >> case _ => 0 >> } >> >> More importantly, one can use extractors to test external things: >> >> object AsJsonFile { >> def unapply(fileName: String): Option[JSON] = ... // find the file, >> load it and parse it as JSON >> } >> >> What are your thoughts on adding extractors to the pattern matcher? >> >> Thanks, >> >> David >> >> -- >> Telegram, Simply Beautiful CMS https://telegr.am >> Lift, the simply functional web framework http://liftweb.net >> Follow me: http://twitter.com/dpp >> Blog: http://goodstuff.im >> >> -- >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to [email protected] >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- Telegram, Simply Beautiful CMS https://telegr.am Lift, the simply functional web framework http://liftweb.net Follow me: http://twitter.com/dpp Blog: http://goodstuff.im -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
