About

I am a software developer in Seattle, building a new AI software company.

Ads

August 2009

Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Ads


« Anonymous Recursion | Main | Parameterized Unit Tests »

March 16, 2007

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8345242f069e200d835235eaa69e2

Listed below are links to weblogs that reference Code and Data:

Comments

Anthony Mills

I am quite interested by your posts on practical functional programming, but I find examples that are actually comprehensible by mortals are quite few and far between. Could you recommend any source code that you've run across that's instructive?

Wesner Moise

Exposing an operation as a non-opaque function also makes it easier for the rest of the application to reason about the history of the document.

It also leads to compact form of undo when manipulation documents in a functional way. Our undo trail simply records all the functions applied to the document, rather than or in addition to the actual changes applied.

Anthony Cowley

Wes, you may have seen this before, but Kanren (http://kanren.sourceforge.net/) is an implementation of prolog-style logic programming in Scheme. It brings some of what you want to a Lisp language.

damien

Would you say your expression construct is equivalent to the Expression class used in Linq to represent lambda expressions?

Can you give some examples of the kinds of transforms you might use?

RichB

I'm totally bought into your passion for FP - but I find it hard to visualize. I understand the raw language constructs (mainly via my experience with Javascript, but also through the new features in C#2). And I understand how purely functional data structures work - they remind me of the copy-on-write memory in WinNT. But I don't understand the code side. I don't understand how a "model" can notify several "views" of changes in a purely functional way. I don't understand the bigger coding picture.

I would love to read through some of your code to try and understand.

And with the massive push into dynamic languages, which tend to also be very functional, I _need_ to understand.

Ian Horwill

Wes, like other commenters, I am excited by a lot of what you say in your blog, but am not able to fully understand it.

I remember being on a Lisp course at university in the early 80s and getting a real instinctive buzz from the idea of self-modifying code (before I'd been taught that it was evil), and your posts are reigniting that for me.

Also what you are saying reminds me of what I understand of the goals of AOP, which I also find very interesting although so far I haven't "got it" and feel like I'm looking at a round peg and a square hole.

It would be great if you could put together a reading list to help an FP neophyte get to grips with your ideas.

Wesner Moise

Anthony, I'll look at Kanren, so far my initial preview looks interesting.

Damien, Expression trees are very similar to my "expressions". However, the current interface makes it very hard to walk through an interface, because the arguments of each expression is not indexable. Also, LINQ expression trees are not extensible.

I'll mention some kinds of transforms in a later post.

Barry Kelly

Adding to what the others say, your posts on functional programming are the main reason I read the blog.

Gregg Irwin

If you haven't already, take a look at REBOL (www.rebol.com), just for fun. There is no code, only data that may get evaluated at some point.

When you get deeper into it, the flexibility is fantastic; but it can throw people getting started, as the code/data duality in other langs does.

Fun stuff and, whatever language you use, really makes you think differently.

Judah

FWIW, I love reading your posts on functional programming. Very informative, however, I don't always understand everything.

damien

Wes, I think you need to post some code. This last post was very intesting, but can only be illuminated with actual code.

Wesner Moise

I always get some interesting new links to look at: I'll check out REBOL and Kanren.

Ian, I'll talk more about history of FP in some near future post.

Damien, as per your suggestion, I'll include more code in later posts.

Michael Kletzerman

Wesner, thank you for your postings on FP.
Not all developers are suspicious of new programming paradigms. I have been programming in C, C++, and Java for 10+ years and started thinking about FP recently.

I am interested in doing FP with java (and perhaps c#) since "real" functional languages are not in mainstream now and I like to add FP to my everyday programming in easy and natural way.

Keep blogging on FP, please

Stefan

You might want to take a gander at Lua... I have recently started using this language as a way to directly express/store/manipulate "objects" - complete with inherited methods - completely inside of a traditional database.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment