From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: rustom Newsgroups: gmane.emacs.help Subject: Re: is Emacs completely written in lisp Date: Tue, 20 Nov 2007 10:01:14 -0800 (PST) Organization: http://groups.google.com Message-ID: <8a9ee940-06d8-4764-b36a-2ebbdc4df872@e23g2000prf.googlegroups.com> References: <0b863c61-a1fd-43fe-b160-f257f660d416@c29g2000hsa.googlegroups.com> <5qg0qsFvs4boU1@mid.individual.net> <8Z6dnWjhbaaEi97anZ2dnUVZ_uLinZ2d@sysmatrix.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1195584038 6160 80.91.229.12 (20 Nov 2007 18:40:38 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 20 Nov 2007 18:40:38 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Nov 20 19:40:44 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IuY1a-0006y0-Iv for geh-help-gnu-emacs@m.gmane.org; Tue, 20 Nov 2007 19:40:42 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IuY1M-0004gC-Ry for geh-help-gnu-emacs@m.gmane.org; Tue, 20 Nov 2007 13:40:28 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!postnews.google.com!e23g2000prf.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 34 Original-NNTP-Posting-Host: 59.95.23.211 Original-X-Trace: posting.google.com 1195581674 10595 127.0.0.1 (20 Nov 2007 18:01:14 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Tue, 20 Nov 2007 18:01:14 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: e23g2000prf.googlegroups.com; posting-host=59.95.23.211; posting-account=mBpa7woAAAAGLEWUUKpmbxm-Quu5D8ui User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4) Gecko/20070508 Iceweasel/2.0.0.4 (Debian-2.0.0.4-0etch1), gzip(gfe), gzip(gfe) Content-Disposition: inline Original-Xref: shelby.stanford.edu gnu.emacs.help:153934 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:49368 Archived-At: > > Out of curiosity, can you tell me how? just a general overview or some > > place where I can read, how this is done? > > Here is a readable summary: > > http://en.wikipedia.org/wiki/Elisp Well I looked it up and did not find anything much on the C-lisp interface. The lisp article: http://en.wikipedia.org/wiki/Lisp_programming_language is a bit more detailed. Anyhow let me try in ever so brief: We start with some of the most basic editor-y things, say buffers and windows -- which respectively manipulate and show text. Now as a C programmer you will think of this essentially as two types, struct buffer {...}; and struct window {...}; and along with that an API to do the things you want to to them. Now a C++ programmer goes one step further and binds the the API with the struct (and struts about calling this an object :-) ) Stallman went one step further and asked What would it take to embed this API+type fully embedded in its own dedicated language? And you get elisp. Well... That emphasised the e part of elisp more than the lisp. For the lisp part you should study some of the model scheme implementations -- a bit different from lisp but better for study. But before that you will also have to study lisp as a language. The bible today is SICP http://mitpress.mit.edu/sicp/ I myself prefer older books like Allens anatomy of lisp and Henderson's Functional Programming but these are hard to get nowadays. Last: Dont give up. The high from lisp cannot be easily replicated.