PingBack from [link:479.rkwrh.com]

By on 5/31/2010 11:48 AM ()
By on 5/30/2010 7:19 PM ()
By on 5/30/2010 5:29 PM ()
By on 5/27/2010 7:08 AM ()
By on 5/25/2010 7:56 PM ()
By on 5/25/2010 5:18 PM ()
By on 5/25/2010 12:39 PM ()
By on 5/25/2010 10:54 AM ()

PingBack from [link:273.renters.ws]

By on 5/25/2010 9:57 AM ()
By on 5/25/2010 4:01 AM ()
By on 5/24/2010 11:32 PM ()
By on 5/24/2010 1:47 PM ()
By on 5/24/2010 11:15 AM ()
By on 5/24/2010 10:55 AM ()
By on 5/24/2010 9:06 AM ()
By on 5/24/2010 7:09 AM ()
By on 5/24/2010 6:55 AM ()

PingBack from [link:38.ja3ra.com]

By on 5/24/2010 6:20 AM ()

PingBack from [link:35.1fh.org]

By on 5/24/2010 5:50 AM ()
By on 5/24/2010 4:27 AM ()

PingBack from [link:46.akemet.com]

By on 5/24/2010 4:12 AM ()
By on 5/23/2010 6:10 AM ()
By on 5/23/2010 4:42 AM ()
By on 5/23/2010 2:16 AM ()
By on 5/23/2010 2:02 AM ()
By on 5/22/2010 11:06 PM ()
By on 5/22/2010 10:12 PM ()
By on 5/22/2010 9:21 PM ()
By on 5/22/2010 8:54 PM ()
By on 5/22/2010 7:58 PM ()
By on 5/22/2010 7:44 PM ()
By on 5/22/2010 6:16 PM ()
By on 5/22/2010 4:30 PM ()

PingBack from [link:387.an74.com]

By on 5/22/2010 4:17 PM ()
By on 5/22/2010 2:54 PM ()
By on 5/22/2010 2:53 PM ()

PingBack from [link:58.1fh.org]

By on 5/22/2010 12:14 PM ()
By on 5/22/2010 11:51 AM ()
By on 5/22/2010 11:29 AM ()
By on 5/22/2010 9:14 AM ()
By on 5/22/2010 9:00 AM ()
By on 5/22/2010 8:42 AM ()
By on 5/22/2010 8:25 AM ()
By on 5/22/2010 7:31 AM ()

PingBack from [link:355.1fh.org]

By on 5/22/2010 5:04 AM ()
By on 5/22/2010 4:51 AM ()
By on 5/22/2010 3:24 AM ()

PingBack from [link:496.an74.com]

By on 5/22/2010 1:25 AM ()

PingBack from [link:51.renters.ws]

By on 5/21/2010 10:48 PM ()
By on 5/21/2010 10:30 PM ()
By on 5/21/2010 9:58 PM ()

PingBack from [link:235.renters.ws]

By on 5/21/2010 9:36 PM ()

PingBack from [link:331.an74.com]

By on 5/21/2010 8:53 PM ()
By on 5/21/2010 8:17 PM ()
By on 5/21/2010 6:41 PM ()
By on 5/21/2010 4:30 PM ()

PingBack from [link:414.an74.com]

By on 5/21/2010 4:00 PM ()

PingBack from [link:173.rkwrh.com]

By on 5/21/2010 1:37 PM ()
By on 5/21/2010 4:28 AM ()
By on 5/21/2010 4:14 AM ()
By on 5/21/2010 4:00 AM ()

PingBack from [link:208.akemet.com]

By on 5/21/2010 3:57 AM ()
By on 5/21/2010 2:46 AM ()
By on 5/21/2010 2:35 AM ()
By on 5/21/2010 1:22 AM ()
By on 5/21/2010 1:08 AM ()
By on 5/20/2010 10:01 PM ()

PingBack from [link:466.ja3ra.com]

By on 5/20/2010 9:51 PM ()
By on 5/20/2010 9:27 PM ()

PingBack from [link:80.ja3ra.com]

By on 5/20/2010 8:43 PM ()
By on 5/20/2010 8:36 PM ()
By on 5/20/2010 5:59 PM ()
By on 5/20/2010 4:13 PM ()
By on 5/20/2010 1:58 PM ()

PingBack from [link:280.renters.ws]

By on 5/20/2010 12:48 PM ()
By on 5/20/2010 12:30 PM ()
By on 5/20/2010 12:21 PM ()

PingBack from [link:37.renters.ws]

By on 5/20/2010 11:35 AM ()

PingBack from [link:106.ja3ra.com]

By on 5/20/2010 10:33 AM ()
By on 5/20/2010 10:18 AM ()
By on 8/14/2009 1:15 AM ()
By on 1/20/2009 6:59 PM ()
By on 6/15/2008 5:03 PM ()
By on 6/15/2008 5:02 PM ()

Very nice article, and it was the first article that gave me a better understanding of quotations. However, since it was also one of my first articles overall, it took me some time to figure out that this code only runs on F# version 1.1.13.8, whereas I am using the latest version, namely F# version 1.9.3.14. And things have changed in between, apparently ;-).

A bit of googling later, I encountered [link:cs.hubfs.net] where Robert answers a quotation related question. And this article, together with Roberts answer made me see the light. What I'm trying to say is that this article, although being what I was looking for, is VERY confusing. A nice compromise would be a rewrite of this article using updated coding, combined with the code generation example of Robert. The purpose of this article, which gives hints at how to create an AST, could be the more advanced example.

Mmm, maybe I should not whine, and give it a shot...

br,

Bart

By on 4/21/2008 2:44 PM ()
By on 4/7/2008 7:54 AM ()

Don't Worry, Be Happy! =)

By on 2/29/2008 12:40 AM ()
By on 8/23/2007 4:49 PM ()

Thanks for your comment Jon!

Currently there is no standard way (as far as I know) for compiling F# quotations (AST). Building it is not that difficult - you can either compose code quoted using <@ .. @> operator (and some other useful operators) or use ef[something].Make (see [link:research.microsoft.com] for list of all quotation types that can be used).

It would be probably possible to implement compiling F# quotations by converting this "public" representation to internal AST used by F# compiler and invoking the compiler, however I'm not familiar with F# source codes enough to do this. The easier (and a little slower) option is to generate F# source code from F# quotations and compiling it using "fsc" compiler (or using my CodeDomProvider which makes it a bit easier, but internally launches "fsc" too).

By on 11/25/2006 6:17 PM ()

Great article. That's described the F# AST and how you can use quotations to decompose an F# expression into its AST.

I'd like to know how to do the converse: built an AST and evaluate it. For example, can you write a calculator that evaluates the expressions it is given using .NET (i.e. to native code) rather than using a slow eval function as you did here?

Cheers,

Jon.

By on 11/17/2006 6:17 AM ()

Introduction

F# quotations allows you to easily write programs that manipulate with data representation...

By on 10/13/2006 4:49 PM ()

The F# Hub is a community site at www.hubfs.net, and has been full of interesting posts recently. ...

By on 7/8/2006 6:06 PM ()
By on 7/7/2006 7:41 PM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper