TweetFollow Us on Twitter

List Programming
Volume Number:1
Issue Number:6
Column Tag:LISP LISTENER

MACINTOSH List Programming

By Andy Cohen

Welcome to The Lisp Listener Window! This is the first of what we hope will become a regular column on programming Lisp on the Apple Macintosh. Lisp stands for List Programming and it is used for a very special type of computer programming in a field typically refered to as Artificial Intelligence or AI. Over the past five years AI has become a very popular and controversial topic. It has roots in Computer Science and Cognitive Psychology. The Psychologists found ways of describing human mental processes and the computer scientists have programmed these processes into computers, thereby getting the computer to perform human-like processing tasks.

Computers however, are definitely not one to one analogies to people. Computers process data. Human processes, on the other hand, deal with concepts. Lisp was designed specifically to handle the coding of these concepts by providing an object oriented, programm- ing environment. This development has provided us with programs that generate information by mimicking the same form of inductive reasoning as a person. In the case of specialized knowledge domains, these programs have been called Expert Systems. I will eventually try to emphasize on Lisp examples which will.

Take advantage of what makes Lisp different from the other languages covered in this publication. That is, it’s ability to manipulate objects, rather than just data, in a fashion similar to the way people do.

Is Lisp on the Mac Serious?

A friend asked me a little while ago if we will be able to program serious AI applications using Lisp? My first reaction was that we can’t. The smallest development system for an AI application has quite a bit more random access memory (from two to five Mbytes) and usually has a hard disk with more then 30 megabytes of space on which to read or write. The best we can hope for in the Macintosh environment (at the time this article was written!) is one megabyte of RAM and ten megabytes on a hard disk using the Mac XL. However, I also noted that sometimes the application is only developed using Lisp and then when finalized, the code is translated into a lower level language, such as Fortran. This recoding is done for speed and compactness.

My secondary feelings were yes, we probably can develop an AI application on the Mac to some extent, but the program will have to be translated into Pascal, C or even 68K Assembly. As it turns out, the version of Lisp coming from Expertelligence will allow us to do quite a bit with just 512K and two floppies. I’ll describe this package in detail later. Will we be able to use the Mac as an AI development machine? I am still sceptical, however I have a feeling that time will show us that it just might be possible. If you are asking, why would somebody program Lisp on the Mac at this time? I can only say one should use Lisp on the Mac for educational purposes. Heck, educational purposes are more than enough considering that a complete Lisp development system can cost over $75,000.00! Also consider that just a couple of years ago having Lisp on a micro-computer was almost as fictional as verbally asking your Mac to open the pod bay doors.

Different Lisps

Lisp comes in many different versions just like any other computer language. There is Zetalisp, Interlisp, Maclisp (not Macintosh) and some I’m sure I’ve never heard of. The versions of Lisp that are or will be available on the Macintosh are very close to Common Lisp. An excellent text for Common Lisp is “Lisp” 2nd ed. by Winston and Horn. All that I discuss in this article regarding Common Lisp follows what is in that text.

At the time this article was written only one version of Lisp was available. It is called XLisp and was developed by David Betz. It was programmed in C and was considered by Betz as an experimental language. There are two versions of XLisp that I have seen on the Mac; version 1.2 and version 1.4. Both versions of XLisp are interpreted. Only version 1.4 however, can handle object oriented programming. Unfortunately, XLisp 1.4 takes up most of the available memory on a 128K Mac. Either version of XLisp however, will work fine on a 128K Mac for demonstrating some of the arithmetic functions in Common Lisp syntax. The biggest advantage of XLisp is that it is Public Domain software. In other words, it is free. Look for it on Compuserve’s MAUG or to your local users’ group. Chances are it is available in one or more versions.

Lisp and Arithmetic

Enough small talk ( oops, sorry about that!) , now lets take a first look at Lisp. The most fundamental object in Lisp is an Atom. The atom is used in groups to produce Lists. Atoms and lists make up what are called expressions.

Okay, lets get a little more detail. A procedure specifies how something is performed. For example “+” or plus sign is a procedure. The “+” by itself is called a primitive. Numbers or symbols are refered to as arguments. Therefore the numbers 2.56 and 8.34 are arguments. These elements or atoms can be placed into a List:

 (+ 2.56 8.54)

The procedure “+” will then operate on the arguments 2.56 and 8.54 to produce 11.1. A bunch of procedures which work together are a program. More examples of lists are the following:

 (+ 2 2)
 (* 103 346)
 (/ 35 46)

If you have XLisp try typing these in yourself. The answers are produced when the carriage return is made, then displayed beneath the list. I used bold lettering to indicate the output.

 (+ 2 2)
 4

See. Isn’t that easy? Lets make things more interesting. Procedures can also be more complex, e.g. MIN and MAX (If you are trying this with XLisp be sure to use the lower case):

 (MIN 53 37 95 23)
 23
 (MAX 74 37 49 20)
 74

MIN will print the smallest argument in the list. MAX will print the largest.

One can also use primitives typically used with multiple arguments with singular arguments.

 (- 7)
 -7
 (- -3)
 3

In the first case the negative or subtract symbol turns the argument into a negative equivalent. In the second the “-” turns the negative argument into a positive just as -1*-3=3.

Lists can contain other lists.

 (- (* 4 9) (+ 8 32))
 -4

The equivalent of the above is as follows:

 (- 36 40)
 -4

As we can see the list is organized and performed in a typical hierarchical manner. A list, therefore, is made up of a left parenthesis, followed by any number of atoms or lists and concluded with a right parenthesis.

Dissecting Lists

Enough of numbers, lets start to use symbols as arguments.

 (A B C)

or

 (Alpha Beta Cookies)

Now lets use more sophisticated procedures. CAR and CDR are used to pull arguments out of lists. I’m told CAR stands for “Contents of Address Register” and CDR stands for “Contents of Data Register”. I’m sure there is some meaning in these titles with regard to the result, but that’s not important right now. What is important is what these procedures do.

(CAR ‘(Alpha Beta Cookies))
 Alpha

CAR returns the first argument in the list. Note that we are using a list in a list.

(CDR ‘(Alpha Beta Cookies))
 (Beta Cookies)

CDR returns the list minus the first argument. What if I am looking for the second argument in a list of three? In this case the CAR and CDR procedures can be nested.

(CAR (CDR ‘(Alpha Beta Cookies)))
 Beta

In the above example CDR produces the list,

 (Beta Cookies)

then CAR produces Beta. I hope you’ve noticed the single quote after the CDR above as well as in the other samples. This is how Lisp knows that the CDR in the above sample is a procedure and not just another argument. Without the single quote the following would be the result:

(CAR (CDR (Alpha Beta Cookies)))
 CDR

CDR in this case was not considered by Lisp as a procedure. The CAR procedure looked to the first argument, in this case the CDR, and displayed it. After playing a bit with these two procedures and a bunch of arguments one can see ways of making sets of procedures which will perform specific kinds of searches.

I’ve tried to give a very brief introduction to Common Lisp simply for the purpose of giving some impression of what Lisp looks like. Most of the above can be done using XLisp. Since Xlisp is an experimental program and Experlisp from Expertelligence will be a relatively serious Lisp development package, this column will probably deal exclusively with Experlisp. Next month The Lisp Listener Window will give a detailed description of Experlisp as well as discuss composing nested CARs and CDRs, symbolic assignment and a whole bunch of related procedures. In future installments I would like to review detailed examples as well as compare the performance of our little Mac to those of the Lisp machines from Xerox and Symbolics.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Top Mobile Game Discounts
Every day, we pick out a curated list of the best mobile discounts on the App Store and post them here. This list won't be comprehensive, but it every game on it is recommended. Feel free to check out the coverage we did on them in the links... | Read more »
Price of Glory unleashes its 1.4 Alpha u...
As much as we all probably dislike Maths as a subject, we do have to hand it to geometry for giving us the good old Hexgrid, home of some of the best strategy games. One such example, Price of Glory, has dropped its 1.4 Alpha update, stocked full... | Read more »
The SLC 2025 kicks off this month to cro...
Ever since the Solo Leveling: Arise Championship 2025 was announced, I have been looking forward to it. The promotional clip they released a month or two back showed crowds going absolutely nuts for the previous competitions, so imagine the... | Read more »
Dive into some early Magicpunk fun as Cr...
Excellent news for fans of steampunk and magic; the Precursor Test for Magicpunk MMORPG Crystal of Atlan opens today. This rather fancy way of saying beta test will remain open until March 5th and is available for PC - boo - and Android devices -... | Read more »
Prepare to get your mind melted as Evang...
If you are a fan of sci-fi shooters and incredibly weird, mind-bending anime series, then you are in for a treat, as Goddess of Victory: Nikke is gearing up for its second collaboration with Evangelion. We were also treated to an upcoming... | Read more »
Square Enix gives with one hand and slap...
We have something of a mixed bag coming over from Square Enix HQ today. Two of their mobile games are revelling in life with new events keeping them alive, whilst another has been thrown onto the ever-growing discard pile Square is building. I... | Read more »
Let the world burn as you have some fest...
It is time to leave the world burning once again as you take a much-needed break from that whole “hero” lark and enjoy some celebrations in Genshin Impact. Version 5.4, Moonlight Amidst Dreams, will see you in Inazuma to attend the Mikawa Flower... | Read more »
Full Moon Over the Abyssal Sea lands on...
Aether Gazer has announced its latest major update, and it is one of the loveliest event names I have ever heard. Full Moon Over the Abyssal Sea is an amazing name, and it comes loaded with two side stories, a new S-grade Modifier, and some fancy... | Read more »
Open your own eatery for all the forest...
Very important question; when you read the title Zoo Restaurant, do you also immediately think of running a restaurant in which you cook Zoo animals as the course? I will just assume yes. Anyway, come June 23rd we will all be able to start up our... | Read more »
Crystal of Atlan opens registration for...
Nuverse was prominently featured in the last month for all the wrong reasons with the USA TikTok debacle, but now it is putting all that behind it and preparing for the Crystal of Atlan beta test. Taking place between February 18th and March 5th,... | Read more »

Price Scanner via MacPrices.net

AT&T is offering a 65% discount on the ne...
AT&T is offering the new iPhone 16e for up to 65% off their monthly finance fee with 36-months of service. No trade-in is required. Discount is applied via monthly bill credits over the 36 month... Read more
Use this code to get a free iPhone 13 at Visi...
For a limited time, use code SWEETDEAL to get a free 128GB iPhone 13 Visible, Verizon’s low-cost wireless cell service, Visible. Deal is valid when you purchase the Visible+ annual plan. Free... Read more
M4 Mac minis on sale for $50-$80 off MSRP at...
B&H Photo has M4 Mac minis in stock and on sale right now for $50 to $80 off Apple’s MSRP, each including free 1-2 day shipping to most US addresses: – M4 Mac mini (16GB/256GB): $549, $50 off... Read more
Buy an iPhone 16 at Boost Mobile and get one...
Boost Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering one year of free Unlimited service with the purchase of any iPhone 16. Purchase the iPhone at standard MSRP, and then choose... Read more
Get an iPhone 15 for only $299 at Boost Mobil...
Boost Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering the 128GB iPhone 15 for $299.99 including service with their Unlimited Premium plan (50GB of premium data, $60/month), or $20... Read more
Unreal Mobile is offering $100 off any new iP...
Unreal Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering a $100 discount on any new iPhone with service. This includes new iPhone 16 models as well as iPhone 15, 14, 13, and SE... Read more
Apple drops prices on clearance iPhone 14 mod...
With today’s introduction of the new iPhone 16e, Apple has discontinued the iPhone 14, 14 Pro, and SE. In response, Apple has dropped prices on unlocked, Certified Refurbished, iPhone 14 models to a... Read more
B&H has 16-inch M4 Max MacBook Pros on sa...
B&H Photo is offering a $360-$410 discount on new 16-inch MacBook Pros with M4 Max CPUs right now. B&H offers free 1-2 day shipping to most US addresses: – 16″ M4 Max MacBook Pro (36GB/1TB/... Read more
Amazon is offering a $100 discount on the M4...
Amazon has the M4 Pro Mac mini discounted $100 off MSRP right now. Shipping is free. Their price is the lowest currently available for this popular mini: – Mac mini M4 Pro (24GB/512GB): $1299, $100... Read more
B&H continues to offer $150-$220 discount...
B&H Photo has 14-inch M4 MacBook Pros on sale for $150-$220 off MSRP. B&H offers free 1-2 day shipping to most US addresses: – 14″ M4 MacBook Pro (16GB/512GB): $1449, $150 off MSRP – 14″ M4... Read more

Jobs Board

All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.