Python folks would say that you could do something very much like the Ruby example in python, by replacing symbols with strings. A Rubyist would say how much less elegant that is. A C programmer would point out that you could do exactly the same thing in C by encoding prolog in a string … And the Python and Ruby programmers would point out how much easier their job is since they can rely on their language’s parser and lexer (instead of having to write a new one for the DSL). There’s a similar thing with Lisp vs Python and Ruby.
Ah, indeed. Lisp is short for “list processor” and ultimately that is all programming is when you abstract far enough.
It’s a beautiful thought, really.
The difficulty is in how best to organise the things that your lists are made up of, and how best to process them in a Von Neumann architecture…
I now want to drink red wine or whiskey and read SICP…
有这時間看 Reddit 不如把一仟多頁的的 CLtL2 看一遍(这位还在看 SICP 说明都还在门口转悠)。或者再学门语言,比如我最近看完了 The Swift Programming Language(看完 Common Lisp 标准以后发現 Swift 还挺容易),順便覚得 Ada 还是不錯的,可以替代 C++。
;;; -*- Mode: Lisp; Base: 8; Package: System-Internals -*-
;;;>
;;;> *****************************************************************************************
;;;> ** (c) Copyright 1998-1982 Symbolics, Inc. All rights reserved.
;;;> ** Portions of font library Copyright (c) 1984 Bitstream, Inc. All Rights Reserved.
;;;>
;;;> The software, data, and information contained herein are proprietary to,
;;;> and comprise valuable trade secrets of, Symbolics, Inc., which intends
;;;> to keep such software, data, and information confidential and to preserve them
;;;> as trade secrets. They are given in confidence by Symbolics pursuant
;;;> to a written license agreement, and may be used, copied, transmitted, and stored
;;;> only in accordance with the terms of such license.
;;;>
;;;> Symbolics, Symbolics 3600, Symbolics 3675, Symbolics 3630, Symbolics 3640,
;;;> Symbolics 3645, Symbolics 3650, Symbolics 3653, Symbolics 3620, Symbolics 3610,
;;;> Zetalisp, Open Genera, Virtual Lisp Machine, VLM, Wheels, Dynamic Windows,
;;;> SmartStore, Semanticue, Frame-Up, Firewall, Document Examiner,
;;;> Delivery Document Examiner, "Your Next Step in Computing", Ivory, MacIvory,
;;;> MacIvory model 1, MacIvory model 2, MacIvory model 3, XL400, XL1200, XL1201,
;;;> Symbolics UX400S, Symbolics UX1200S, NXP1000, Symbolics C, Symbolics Pascal,
;;;> Symbolics Prolog, Symbolics Fortran, CLOE, CLOE Application Generator,
;;;> CLOE Developer, CLOE Runtime, Common Lisp Developer, Symbolics Concordia,
;;;> Joshua, Statice, and Minima are trademarks of Symbolics, Inc.
;;;>
;;;> Symbolics 3670, Symbolics Common Lisp, Symbolics-Lisp, and Genera are registered
;;;> trademarks of Symbolics, Inc.
;;;>
;;;> GOVERNMENT PURPOSE RIGHTS LEGEND
;;;>
;;;> Contract No.: various
;;;> Contractor Name: Symbolics, Inc.
;;;> Contractor Address: c/o Ropes & Gray
;;;> One International Place
;;;> Boston, Massachusetts 02110-2624
;;;> Expiration Date: 2/27/2018
;;;>
;;;> The Government's rights to use, modify, reproduce, release, perform, display or
;;;> disclose this software are restricted by paragraph (b)(2) of the "Rights in
;;;> Noncommercial Computer Software and Noncommercial Computer Software Documentation"
;;;> contained in the above identified contracts. No restrictions apply after the
;;;> expiration date shown above. Any reproduction of the software or portions thereof
;;;> marked with this legend must also reproduce the markings. Questions regarding
;;;> the Government's rights may be referred to the AS&T Contracts Office of the
;;;> National Reconnaissance Office, Chantilly, Virginia 20151-1715.
;;;>
;;;> Symbolics, Inc.
;;;> c/o Ropes & Gray
;;;> One International Place
;;;> Boston, Massachusetts 02110-2624
;;;> 781-937-7655
;;;>
;;;> *****************************************************************************************
;;;>