From: <adr...@ya...> - 2004-07-02 22:50:47
|
Hi. I'm new to Haskell but am exploring the possibilities for extending the functionality of functional programming languages in for my undergraduate 3rd year project. Along with graphical user interfaces databases seems one area where functional languages are typically less developed than imperative languages. While reading C J Date's classic book I was inspired by the example of Datalog applied to logic programming to think about similar correspondences between relational databases and functional programming, and realize that such correlations are strong. Im looking to build a pre-compiler and database access extension for a mainstream functional language, based upon relational algebra and the essence of types, tuples, etc. as opposed to an SQL wrapper. Then I came across HaskellDB and realized that this has already been done! I also dug out some old papers which integrate the functional paradigm and databases even closer, such as FDM/DAPLEX (Shipman, 1981) and FQL (Buneman, 1979). In a nutshell: Buneman reduces all database queries into terms of functional composition, mapping, filtering and tuple building without loosing much clarity! There appear to be three possibilities for where I could go from here: 1)Do you (the developers, including Dr Leijen) have any particular applications which youd like to see HaskellDB put to use for? Perhaps one of these will inspire me to head off in a different direction. 2)Investigate the possibilities for taking the HaskellDB project further in some way. 3)The most ambitious and my favourite option: To start from scratch at implementing something based upon similar principles to HaskellDB in NJ SML/MLj/Java/JDBC or SML.NET/J# and javacc or SML (which is much more the domain of my existing skills set). My supervisor has some reservations, and asks how much HaskellDB relies on laziness, in determining whether this is practical? The documentation on HaskellDB seems a little sparse (with me being new to Haskell syntax as well!). How are you modelling the dynamism of a database? Meaning: when [say] an insert operation is performed do you return a new database? If so, what happens if you try to perform an operation using a variable which still points to the old database? (P.S: I havent actually managed to get a working copy of HaskellDB installed yet. GHC compiles under Mandrake but fails to work. HSQL - both Windows binary and compiling from sources under Cygwin both fail to work. :( ) Regards, Adrian Hudnott ___________________________________________________________ALL-NEW Yahoo! Messenger - sooooo many all-new ways to express yourself http://uk.messenger.yahoo.com |