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

Affinity Designer 1.5.5 - Vector graphic...
Affinity Designer is an incredibly accurate vector illustrator that feels fast and at home in the hands of creative professionals. It intuitively combines rock solid and crisp vector art with... Read more
djay Pro 1.4.3 - Transform your Mac into...
djay Pro provides a complete toolkit for performing DJs. Its unique modern interface is built around a sophisticated integration with iTunes and Spotify, giving you instant access to millions of... Read more
Jamf Pro 9.98 - Powerful sysadmin/enterp...
Jamf Pro (formerly Casper Suite) is the EMM tool that delights IT pros and the users they support by delivering on the promise of unified endpoint management for Apple devices. At Jamf, connecting... Read more
Airmail 3.2.4 - Powerful, minimal email...
Airmail is an mail client with fast performance and intuitive interaction. Support for iCloud, MS Exchange, Gmail, Google Apps, IMAP, POP3, Yahoo!, AOL, Outlook.com, Live.com. Airmail was designed... Read more
RapidWeaver 7.3.1 - Create template-base...
RapidWeaver is a next-generation Web design application to help you easily create professional-looking Web sites in minutes. No knowledge of complex code is required, RapidWeaver will take care of... Read more
PopChar 7.7 - $16.99 (51% off)
PopChar helps you get the most out of your font collection. With its crystal-clear interface, PopChar provides a frustration-free way to access any font's special characters. Features Expanded... Read more
Apple iTunes 12.6 - Play Apple Music and...
Apple iTunes lets you organize and stream Apple Music, download and watch video and listen to Podcasts. It can automatically download new music, app, and book purchases across all your devices and... Read more
MacPilot 9.0.6 - Enable over 1,200 hidde...
MacPilot gives you the power of UNIX and the simplicity of Macintosh, which means a phenomenal amount of untapped power in your hands! Use MacPilot to unlock over 1,200 features, and access them all... Read more
Sparkle Pro 2.1.4 - $79.99
Sparkle Pro will change your mind if you thought building websites wasn't for you. Sparkle is the intuitive site builder that lets you create sites for your online portfolio, team or band pages, or... Read more
TextSoap 8.3.3 - Automate tedious text d...
TextSoap can automatically remove unwanted characters, fix up messed up carriage returns, and do pretty much anything else that we can think of to text. Save time and effort. Be more productive. Stop... Read more

Failbetter Games details changes coming...
Sunless Sea, Failbetter Games' dark and gloomy sea explorer, sets sail for the iPad tomorrow. Ahead of the game's launch, Failbetter took to Twitter to discuss what will be different in the mobile version of the game. Many of the changes make... | Read more »
Splish, splash! The Pokémon GO Water Fes...
Niantic is back with a new festival for dedicated Pokémon GO collectors. The Water Festival officially kicks off today at 1 P.M. PDT and runs through March 29. Magikarp, Squirtle, Totodile, and their assorted evolved forms will be appearing at... | Read more »
Death Road to Canada (Games)
Death Road to Canada 1.0 Device: iOS Universal Category: Games Price: $7.99, Version: 1.0 (iTunes) Description: Get it now at the low launch price! Price will go up a dollar every major update. Update news at the bottom of this... | Read more »
Bean's Quest Beginner's Guide:...
Bean's Quest is a new take on both the classic platformer and the endless runner, and it's free on the App Store for the time being. Instead of running constantly, you can't stop jumping. That adds a surprising new level of challenge to the game... | Read more »
How to rake in the cash in Bit City
Our last Bit City guide covered the basics. Now it's time to get into some of the more advanced techniques. In the later cities, cash flow becomes much more difficult, so you'll want to develop some strategies if you want to complete each level.... | Read more »
PixelTerra (Games)
PixelTerra 1.1.1 Device: iOS Universal Category: Games Price: $.99, Version: 1.1.1 (iTunes) Description: The world of PixelTerra is quite dangerous so you need to build a shelter, find some food supply and get ready to protect... | Read more »
Tokaido™ (Games)
Tokaido™ 1.0 Device: iOS Universal Category: Games Price: $6.99, Version: 1.0 (iTunes) Description: Discover the digital adaptation of Tokaido, the boardgame phenomenon that has already sold more than 250,000 copies worldwide, and... | Read more »
Card Thief (Games)
Card Thief 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Card Thief is a solitaire style stealth game played with a deck of cards. In Card Thief you move through a deck of cards as a... | Read more »
Smilegate’s crafting battler Super Tank...
Super Tank Rumbleputs you in the seat of your very own, handcrafted tank. You can choose from over 100 different parts to create your Super Tank before taking it out to wreak havoc on your opponents in glorious PVP combat. Now, Smilegate is upping... | Read more »
The best games to play while you wait fo...
Mass Effect: Andromeda arrives this coming Tuesday and people are getting understandably antsy. There's a whole weekend standing between us and a brand new Bioware adventure. What's a geek to do? Well, you could certainly give these fine mobile... | Read more »

Price Scanner via MacPrices.net

13-inch Touch Bar MacBook Pros on sale for up...
B&H Photo has the Apple 13″ Touch Bar MacBook Pros in stock today and on sale for up to $150 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.9GHz/512GB Touch Bar... Read more
Today only! 15-inch 2.7GHz Space Gray Touch B...
B&H Photo has the new 2016 15″ 2.7GHz Space Gray Apple Touch Bar MacBook Pro in stock today and on sale for $300 off MSRP for today only. Shipping is free, and B&H charges NY sales tax only... Read more
New $329 iPad A Fabulous Value; 10.5-Inch iPa...
Part of the iPad upgrade/new model puzzle is now in place. Yesterday, as KGI Securities financial services group analyst Ming-Chi Kuo last summer predicted they would, Apple released a new low-cost 9... Read more
New 9.7-Inch iPad Features All Of The Fun...
Apple today updated its most popular-sized iPad, featuring a brighter 9.7-inch Retina display and best-in-class performance at its most affordable price ever, starting at $329 (US) with 32GB of... Read more
Apple Introduces iPhone 7 and iPhone 7 Plus (...
Apple today announced iPhone 7 and iPhone 7 Plus (PRODUCT)RED Special Edition in a vibrant red matte aluminum finish, in recognition of more than 10 years of partnership between Apple and (RED). This... Read more
Apple now offering Certified Refurbished 15-i...
Apple is now offering Certified Refurbished 2016 15″ Touch Bar MacBook Pros for $360-$420 off original MSRP. An Apple one-year warranty is included with each model, and shipping is free: - 15″ 2.6GHz... Read more
Apple Introduces Clips: A Free Innovative Way...
Apple today introduced Clips, a new app that makes it quick and fun for anyone to create expressive videos on iPhone and iPad. The app features a unique design for combining video clips, photos and... Read more
Urban Armor Gear Unveils Case For 4th Generat...
Orange County, California based Urban Armor Gear (UAG), designers of rugged, lightweight protective cases for phones, tablets and laptops, has released its latest drop-tested cases for Apple’s 4th... Read more
Most Users Continue To Prefer 5.0 to 5.3 Inch...
In the first half of 2016, US and UK smartphone users were most likely to be interested in purchasing a device with a 5.3″ or 5.0″ display. Findings in a new report from the User Experience... Read more
12-inch 1.2GHz Retina MacBooks on sale for up...
B&H has 12″ 1.2GHz Retina MacBooks on sale for up to $200 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 12″ 1.2GHz Space Gray Retina MacBook: $1439.99 $160 off MSRP - 12″ 1... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Fulltime aan de slag als shopmanager in een h...
Ben jij helemaal gek van Apple -producten en vind je het helemaal super om fulltime shopmanager te zijn in een jonge en hippe elektronicazaak? Wil jij werken in Read more
Starte Dein Karriere-Abenteuer in den Hauptst...
…mehrsprachigen Teams betreust Du Kunden von bekannten globale Marken wie Apple , Mercedes, Facebook, Expedia, und vielen anderen! Funktion Du wolltest schon Read more
Starte Dein Karriere-Abenteuer in den Hauptst...
…mehrsprachigen Teams betreust Du Kunden von bekannten globale Marken wie Apple , Mercedes, Facebook, Expedia, und vielen anderen! Funktion Du wolltest schon Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.