Kyle R. Burton on 25 Jul 2007 14:26:17 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[philly-lambda] Re: Programming Erlang

  • From: "Kyle R. Burton" <kyle.burton@gmail.com>
  • To: philly-lambda@googlegroups.com
  • Subject: [philly-lambda] Re: Programming Erlang
  • Date: Wed, 25 Jul 2007 10:26:10 -0400
  • Dkim-signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=aY5/FaxiZMmeTK/SdhHaDYxSAOeIbktXrgicjCbT0T0aThHBluP7VsiWbVtDm9z86iLqggPWMkHZNv5D+J4U3qNz6icHIIw3m9eM49mwT1ufhaXkQApk7oqLD/2sQmoW9eHgrshUNyoH1N+lU47404EuPOWlgZB1w/bCf9T5DkA=
  • Domainkey-status: good (test mode)
  • Mailing-list: list philly-lambda@googlegroups.com; contact philly-lambda-owner@googlegroups.com
  • Reply-to: philly-lambda@googlegroups.com
  • Sender: philly-lambda@googlegroups.com

I'm in the process of reading it, I've just gotten to the chapter
where he discusses Erlang's binary desturucturing bind and packing
feature, which was a pleasant surprise to see a feature like that
included in the language.

Getting into the functional mindset, as opposed to how I'm used to
thinking, is something that is developing for me more slowly than I
would want it to, but I am enjoying the book and Armstrong's writing
style.

I personally like how Java and Perl organize their libraries - module
name spaces which are laid out in a directory tree where the files
correspond to the class/package names.  From what I've read so far,
Erlang seems a bit flatter.  Am I missing something (am I just not far
enough in the book)?  Or is this different in Erlang since there is no
OO.  Its module system feels similarly flat to what I understand about
common lisp and the various module extensions I've used in the scheme
implementations I've worked with.

Ah, which leads to a question.  We are using scheme in an application
at HMS.  We have a matching application (matches profile information
between databases with varying structure/relational data models).  In
that application, we allow users to specify precisely how they want a
match to happen via an s-expression based expression language
(Matching Criteria Expression Language) which is processed via
JScheme.  Looks something like this:

  (match-plan
    (alias (shares-an-address-with-x-miles (x Integer)) ...)
    (match-rounds
      (match-round
        (accept-one-result)
        (or
          (shares-an-address-wtihin-x-miles 1.5)
          (and
            (shares-address-in-same-city-state)
            (indiv-name-edit-distance-similarity 0.85)))))
      (match-round
        ...)))

And 'compiles' it into JScheme code which when evaluated constructs
various Java objects.  In addition to the basic compiler, we also
perform (or are going to perform) various kinds of analysis and
re-writing of the AST for optimization purposes and to create an
execution plan for carrying out the processing on a cluster of boxes
(using various intermediate cached results [indexes], or pruning
specific branches if they are unreachable due to data types not being
present in the subject records, etc)..

So, now for the question: there is a growing amount of scheme code for
doing the MCEL handling, AST analysis, etc.  Right now we just have it
broken down into a handful of files and are making use of JScheme's
use-module (we have to use 'load' for macros/syntax-rules).  Do any of
you have good conventions for organizing large amounts of lisp/scheme
source code to keep things maintainable and so that it is not
confusing looking at a particular piece of code to know where specific
functions or macros are defined?  JScheme's use-module allows things
to be prefixed by the importer, and I haven't seen if there is some
way for the importee to decide what can and can not be imported or
accessed by another module.

Any advice?


Thanks,


Kyle


On 7/25/07, Toby DiPasquale <codeslinger@gmail.com> wrote:
>
> Hi all,
>
> As Philly Lambda started out as an idea to start an Erlang group and
> Erlang is tres chic right now, I was wondering how many of you had
> looked at the new Programming Erlang book by Joe Armstrong:
>
> http://www.pragmaticprogrammer.com/titles/jaerlang/index.html
>
> I just got it in print form earlier this week and I have had the
> various beta PDFs for some time now. Personally, I think the book is
> great and the mailing list is very friendly and helpful (for now).
>
> Anyone else read it? I can bring my copy to the first meeting if
> people want to browse through it a bit.
>
> --
> Toby DiPasquale
>
> >
>


-- 
------------------------------------------------------------------------------
Wisdom and Compassion are inseparable.
        -- Christmas Humphreys
kyle.burton@gmail.com
http://www.neverlight.com/~mortis
------------------------------------------------------------------------------

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Philly Lambda" group.
To unsubscribe from this group, send email to philly-lambda-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/philly-lambda?hl=en
-~----------~----~----~----~------~----~------~--~---