Tag: Lisp

Zeroth Post!

A Usenet posting sent me to a short article by Edsger W. Dijkstra titled Why numbering should start at zero. Now, I have never used a programming language that wasn’t zero-indexed (like Fortran), but neither have I adopted the habit of numbering lists starting with zero. I think the difficulty I have with zero-indexing is…

Read the full article

Voted Off the Planet

So I have been dropped from Planet Lisp, scarcely two months after being added. I wonder if that’s a record of some kind? Apparently, the maintainer found my tone too didactic and my knowledge too lacking. Fair criticisms both, but I meant no harm. I’m certainly not trying to set myself up as a Lisp…

Read the full article

Perl in Lisp 0.1

Hello, Lisp world! This is my first released Common Lisp code. Perl in Lisp is a Common Lisp interface to the Perl 5 API. It allows you to run a Perl interpreter embedded inside Lisp and evaluate Perl code. It does not require any C wrapper code — the API definitions are done with CFFI…

Read the full article

The Naming of Namespaces

Or, How the Lisp-n Shall Inherit the Earth Humans like to name things. Like ourselves, Homo sapiens, Latin for “Primate that has taken leave of its senses.” Then there are engineers. Engineers like to name things too. Like SCSI, pronounced “scuzzy.” Or WYSIWYG, pronounced “wizzy-wig.” Or TTY, pronounced (I couldn’t believe this at first) “titty.”…

Read the full article

The Only Data Structures You’ll Ever Need

Perl was the first programming language I really liked, the first language that made programming fun. Perl has three basic types: “scalars” for atomic values, arrays for ordered sets, and hash tables for unordered sets. (Yes, there are others, but those are the popular ones.) I quickly discovered that these three types can be combined…

Read the full article

Permutations of Iteration

Ah, the loop, so fundamental to programming it’s hard to imagine a single program without one. After all, what’s the use of calculating just one thing? Usually you have a big pile of things you want to calculate, which is why you need a computer in the first place. I think one of the quickest…

Read the full article

JavaScript-like Objects in Ruby (or Lisp)

As part of my exploration of Ruby, I attended Francis Hwang’s presentation to the New York Linux Users’ Group. One feature that caught my interest in his talk was the OpenStruct class, which lets you assign values to arbitrary “slots” within an object. require ‘ostruct’ me = OpenStruct.new me.name = "Stuart Sierra" me.net_worth = -500…

Read the full article

Ruby: Python for Lisp Programmers

A popular game on comp.lang.lisp is comparing Lisp with Python. Lispers complain that Python has a crippled lambda and no lexical closures, and they hiss and boo whenever Python’s development tends in a non-functional direction. I’ve recently been playing with Ruby. Lo and behold, it has real lambdas, closures, and a generally more functional style.…

Read the full article

List Processing and the Efficiency of CONS

One big difference between Lisp and most other programming languages is its use of recursion instead of iteration. So while I was working on some text-parsing code, I fell in to this simple pattern: (defun process (list) (if list (cons (do-something (first list)) (process (rest list))))) Ah, the joys of Lisp-2. If do-something were actually…

Read the full article