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

Tinderbox 7.0.0 - Store and organize you...
Tinderbox is a personal content management assistant. It stores your notes, ideas, and plans. It can help you organize and understand them. And Tinderbox helps you share ideas through Web journals... Read more
1Password 6.5.5 - Powerful password mana...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
Apple Remote Desktop Client 3.9 - Client...
Apple Remote Desktop Client is the best way to manage the Mac computers on your network. Distribute software, provide real-time online help to end users, create detailed software and hardware reports... Read more
Art Text 3.2.2 - $49.99
Art Text is graphic design software specifically tuned for lettering, typography, text mockups and various artistic text effects. Supplied with a great variety of ready to use styles and materials,... Read more
WhatRoute 2.0.15 - Geographically trace...
WhatRoute is designed to find the names of all the routers an IP packet passes through on its way from your Mac to a destination host. It also measures the round-trip time from your Mac to the router... Read more
Sparkle 2.1.1 - $79.99
Sparkle 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
Dash 4.0.1 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
TextSoap 8.3.2 - 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
Apple Remote Desktop 3.9 - Remotely cont...
Apple Remote Desktop is the best way to manage the Mac computers on your network. Distribute software, provide real-time online help to end users, create detailed software and hardware reports, and... Read more
Paragraphs 1.1.4 - Writing tool just for...
Paragraphs is an app just for writers. It was built for one thing and one thing only: writing. It gives you everything you need to create brilliant prose and does away with the rest. Features... Read more

Blasty Bubs is a colorful Pinball and Br...
QuickByte Games has another arcade treat in the works -- this time it's a mishmash of brick breaking and Pinball mechanics. It's called Blasty Bubs, and it's a top down brickbreaker that has you slinging balls around a board. [Read more] | Read more »
Corsola and Heracross are the new region...
Generation 2 finally launched in Pokémon GO, unleashing a brand new batch of Pokémon into the wild. Even before the update went live people were speculating on how to catch elusive Pokémon like the legendary "dogs", Unknown, and whether or not... | Read more »
The Warlock of Firetop Mountain (Games)
The Warlock of Firetop Mountain 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: An epic adventure through a mysterious mountain filled with monsters, magic and mayhem! “...it looks downright... | Read more »
Fantasy MMORPG MU Origin’s receives a hu...
Developer Webzen are looking to take their highly popular fantasy battler MU Origin to the next level this month, with its most ambitious overhaul yet. The latest update introduces the long sought after Server Arena, new treasure dungeons, and much... | Read more »
RPG Djinn Caster (Games)
RPG Djinn Caster 1.0.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.0 (iTunes) Description: SPECIAL PRICE 38% OFF(USD 7.99 -> USD 4.99)!!!A Fantasy Action RPG of far foreign lands! Summon the Djinns and rise to... | Read more »
Alto's Odyssey gets its first trail...
There's finally video evidence of Alto's Odyssey, the follow up to the 2015 App Store hit, Alto's Adventure. It looks just as soothing and atmospheric as Alto's last outing, but this time players will be journeying to the desert. Whereas Alto's... | Read more »
Last week on Pocket Gamer
What’s going on in the wider world of portable gaming? Each week we ask that question of our sister website Pocket Gamer. The PG team covers iOS gaming, just like 148Apps, but it also strays into the world of Android games and handheld consoles... | Read more »
Pokémon GO Generation 2 evolution guide
At long last, Niantic Labs finally unleashed the Generation 2 Pokémon into the wild. Pokémon GO trainers are scrambling to grab up this new set of 80 Pokémon. There are some special new tricks required to catch all of these new beasties, though.... | Read more »
The best new games we played this week
It feels as though the New Year got off to a creaking start as far as mobile games go, but that's changed over the past few weeks. The last few days alone have seen the debut of a number of wonderful games, so we thought we'd take the time to... | Read more »
Recruit more scallywags and discover new...
Get ready to show off your sea legs all over again in Oceans & Empires’ new grand update, which aims to make the act of rising to the role of seven seas ruler even more fresh and appealing, thanks to a richness of new content on both iOS and... | Read more »

Price Scanner via MacPrices.net

Apple’s New iPad Ads Don’t Address Pro Users’...
Apple launched a new tranche of iPad Pro TV ads last week addressing actual queries and challenges from the Twitterverse, albeit using actors for the visuals. That’s great. As an iPad fan and heavy... Read more
Free Verbum Catholic Bible Study App For iOS
The Verbum mobile app runs on Logos’ powerful Bible software and is an advanced resource for mobile Catholic study. The Verbum app surrounds the Bible with the Tradition. Verbum comes with 15 free... Read more
27-inch Apple iMacs on sale for up to $200 of...
B&H Photo has 27″ Apple iMacs on sale for up to $200 off MSRP, each including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2099.99 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $... Read more
15-inch 2.2GHz Retina MacBook Pro on sale for...
Amazon has 2015 15″ 2.2GHz Retina MacBook Pros (MJLQ2LL/A) available for $1849.99 including free shipping. Apple charges $1999 for this model, so Amazon’s price is represents a $150 savings. Read more
Apple refurbished iPad Air 2s available start...
Apple has Certified Refurbished iPad Air 2 WiFis available for starting at $319 including free shipping. A standard Apple one-year warranty is included: - 16GB iPad Air 2 WiFi: $319 $60 off original... Read more
Apple refurbished iPad Pros available for up...
Apple has Certified Refurbished 9″ and 12″ Apple iPad Pros available for up to $160 off the cost of new iPads. An Apple one-year warranty is included with each model, and shipping is free: - 32GB 9″... Read more
Apple restocks refurbished 2015 and 2016 13-i...
Apple has Certified Refurbished 2015 and 2016 13″ MacBook Airs available starting at $759. An Apple one-year warranty is included with each MacBook, and shipping is free: - 2016 13″ 1.6GHz/8GB/128GB... Read more
13-inch 2.5GHz MacBook Pro (Apple refurbished...
Apple has Certified Refurbished 13″ 2.5GHz MacBook Pros (MD101LL/A) available for $829, or $270 off original MSRP. Apple’s one-year warranty is standard, and shipping is free: - 13″ 2.5GHz MacBook... Read more
QuickerTek Announces 5TB Apple AC AirPort Tim...
QuickerTek Inc. has announced their new 5TB hard drive upgrade for Apple’s AC AirPort Time Capsule. By customer request, this upgrade also features six external antennas and offers the highest... Read more
Apple Certified Refurbished iMacs available f...
Apple has Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are available: - 21″ 3.... 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
Manager *Apple* Systems Administration - Pu...
Req ID 3315BR Position Title Manager, Apple Systems Administration Job Description The Manager of Apple Systems Administration oversees the administration and 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
Manager *Apple* Systems Administration - Pu...
Req ID 3315BR Position Title Manager, Apple Systems Administration Job Description The Manager of Apple Systems Administration oversees the administration and Read more
*Apple* Technician - nfrastructure (United S...
Let’s Work Together Apple Technician This position is based in Portland, ME Life at nfrastructure At nfrastructure, we understand that our success results from our Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.