all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tim X <timx@nospam.dev.null>
To: help-gnu-emacs@gnu.org
Subject: Re: handling parenthesis and quotes
Date: Sat, 27 Jan 2007 13:20:19 +1100	[thread overview]
Message-ID: <87lkjp5hy4.fsf@lion.rapttech.com.au> (raw)
In-Reply-To: pcohcugozgr.fsf@shuttle.math.ntnu.no

Harald Hanche-Olsen <hanche@math.ntnu.no> writes:

> + Adam <nospam@example.com>:
>
> | A related newbie question might be, is this the 
> | usual approach for 'incremental programming' by 
> | Lisp users ?  That is; write a function, 
> | then append that function to a file of work 
> | with append-to-file ?  
>
> I don't know what most people do.  Incremental programming is more
> about ways to build a program than about particular editing habits, I
> think.
>
> It is all about building your application bit by bit, testing as you
> go, and basing your work on what went before - and occassionally going
> back and redoing things when you discover that design mistakes become
> a hindrance to further work.  How people save and organize their work
> is probably highly individual, but appending new functions willy-nilly
> to a file seems too disorganized for my taste.  Rather, I work on the
> program files themselves, trying to keep related functions
> together. And whenever I have written a new function or rewritten an
> old one, I evaluate the defun directly from the buffer (using C-M-x).
> Then I use the interaction buffer mainly to test my work.
> The same method works for Common Lisp using slime.  And since slime
> has facilities for making this style of work easy, I suspect something
> like it is a popular method.  8-)
>

This is basically the way I work as well and most people I've spoken to or
worked with on projects in elisp, CL and scheme do it this way - in fact, any
language where you have some sort of REPL. Its a nice way to work as you see
results quite quickly and don't spend time sitting around for slow makes to
complete before you can see if your small bug fix worked. 

I do tent to have an elisp working file which contains functions etc that I've
been working on that are not yet part of a bigger, more defined project.
However, often I find that my initial function spawns more functions as I
break up my code and begin to understand the problem better, so eventually, I
usually end up with related functions in a file or library. 

One aspect of working this way I really like is that the programming is more
exploratory than with other languages like C or Java. In these languages, you
(I) tend to spend a fair amount of time up front designing the system and then
coding it. IN lisp dialects, I often start with only a fairly vague idea of
what I want and the program sort of emerges from that initially vague
definition through exploration. I can't say which method works better, but I
certainly find the exploratory approach more rewarding intellectually. 

Tim

tcross (at) rapttech dot com dot au

      parent reply	other threads:[~2007-01-27  2:20 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-23 20:09 handling parenthesis and quotes Adam
2007-01-23 20:55 ` Giorgos Keramidas
2007-01-23 21:12   ` Adam
2007-01-24  7:24     ` Harald Hanche-Olsen
2007-01-24 19:14       ` Eli Zaretskii
     [not found]       ` <mailman.3530.1169666053.2155.help-gnu-emacs@gnu.org>
2007-01-24 20:07         ` Harald Hanche-Olsen
2007-01-24 21:32           ` Adam
2007-01-24 22:02             ` Harald Hanche-Olsen
2007-01-25 13:53               ` Adam
2007-01-27  2:20               ` Tim X [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lkjp5hy4.fsf@lion.rapttech.com.au \
    --to=timx@nospam.dev.null \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.