Huyền thoại trí tuệ nhân tạo John McCarthy qua đời ở tuổi 84 - PC World VN
Tin này cũ đã hơn 1 năm rồi nhưng bây giờ mình mới đọc. Bỏ hẳn gần 2 năm không dùng Common Lisp, hôm nay ngó lại blog, tình cờ google xem tình hình bà con làm lisp ở mình thế nào.
Thêm một anh nữa đưa tin, xem và so sánh nội dung:
Cha đẻ của ngôn ngữ lập trình Lisp qua đời ở tuổi 84
Thứ Bảy, 20 tháng 10, 2012
Huyền thoại trí tuệ nhân tạo John McCarthy qua đời ở tuổi 84 - PC World VN
Thứ Năm, 17 tháng 11, 2011
Tạo một dự án nhỏ trong Common Lisp (Phần 2)
Language Switcher
Phần này sẽ trình bày cách tạo một dự án trong Common Lisp sử dụng tiện ích quicklisp.
http://xach.livejournal.com/278047.html
http://xach.livejournal.com/278047.html
Thứ Tư, 16 tháng 11, 2011
Lập trình 3D trên Lisp
Trang này giới thiệu về Lispbuilder: http://code.google.com/p/lispbuilder/
Thứ Ba, 15 tháng 11, 2011
Tạo một dự án nhỏ trong Common Lisp (Phần 1)
Tôi thường gặp nhiều người hay bảo rằng họ không biết bắt đầu từ đâu để viết một chương trình đơn giản trong Common Lisp. Rõ ràng, cũng như các ngôn ngữ lập trình khác, Common Lisp cũng tổ chức chương trình thành các thư mục, tập tin chứa những chức năng chính. Trong phần này, tôi trình bày một cách tổng quát các bước chính để tạo dự án đơn giản nhất trong Common Lisp. Nội dung bài viết này được tham khảo từ Making a small Common Lisp project
Để đơn giản, giả sử tôi tạo một ứng dụng dùng để cho biết họ, tên đệm (lót), và tên khi nhập vào một tên đầy đủ. Tôi đặt tên cho ứng dụng này là nameanalysis và bắt đầu với một file /home/nvntung/lisp/nameanalysis/nameanalysis.lisp.
defpackage #:nameanalysis (:use #:cl))
(in-package #:nameanalysis)
Đoạn code trên định nghĩa một gói tên là nameanalysis, sử dụng gói cl (thường cl-user). Sau đó,di chuyển vào trong gói nameanalysis với lệnh (in-package #:nameanalysis.
Mẹo: Nhấn tổ hợp phím Ctrl c Ctrl c để biên dịch từng dòng lệnh (hoặc cụm lênh). Nếu muốn biên dịch toàn bộ thì Ctrl c Ctrl k
Bắt đầu code sau khi in-package.
Viết code cho chương trình
Cứ tiến hành khai báo biến, hằng, các hàm và những thứ linh tinh khác ở đây.
Mở một chương trình soạn thảo
Đầu tiên, để soạn thảo chúng ta cần một phần mềm hỗ trợ soạn thảo văn bản như notepad, notepad++ hay emacs. Tạo các file .lisp để chứa mã lệnh chương trình. Thông thường, các file này nằm trong thư mục của dự án. Và dù dự án nhỏ, chúng ta cũng cần phải tạo vài file khác nhau để chứa các thủ tục khởi tạo và nạp những thư viện. Nếu sử dụng emacs, sau khi khởi động xong, bạn nhấn M-x slime để nạp sbcl và mở một file lisp mới.Để đơn giản, giả sử tôi tạo một ứng dụng dùng để cho biết họ, tên đệm (lót), và tên khi nhập vào một tên đầy đủ. Tôi đặt tên cho ứng dụng này là nameanalysis và bắt đầu với một file /home/nvntung/lisp/nameanalysis/nameanalysis.lisp.
Định nghĩa các gói (packages)
Phần này liên quan đến việc tổ chức các gói của ứng dụng.defpackage #:nameanalysis (:use #:cl))
(in-package #:nameanalysis)
Đoạn code trên định nghĩa một gói tên là nameanalysis, sử dụng gói cl (thường cl-user). Sau đó,di chuyển vào trong gói nameanalysis với lệnh (in-package #:nameanalysis.
Mẹo: Nhấn tổ hợp phím Ctrl c Ctrl c để biên dịch từng dòng lệnh (hoặc cụm lênh). Nếu muốn biên dịch toàn bộ thì Ctrl c Ctrl k
Bắt đầu code sau khi in-package.
Viết code cho chương trình
Cứ tiến hành khai báo biến, hằng, các hàm và những thứ linh tinh khác ở đây.
Soạn thảo mã lệnh Lisp với Emacs
Làm việc với Linux chắc chúng ta không quên emacs, một bộ soạn thảo cực kỳ mạnh mẽ và hiệu quả. Phần này sẽ giới thiệu cho các bạn một số mẹo vặt làm việc với nó.
Có nhiều ngôn ngữ sử dụng các dấu ngoặc để bắt đầu hoặc kết thúc một câu lệnh, chẳng hạn Scheme, Common Lisp, Clojure, hay XML. Nếu chúng ta cài đặt tính năng để emacs tự động highlight các dấu ngoặc (gồm có (, ), <, >) thì điều này cũng có hiệu lực cho các ngôn ngữ như nêu trên.
Lưu ý: Tất cả những trình bày ở dưới đều cấu hình trong file .emacs. Các tác giả [1] đã trình bày khá rõ ràng, tôi chỉ tóm tắt ở đây.
Cài đặt tiện ích làm sáng các dấu ngoặc
;; highlight text selection (on by default since emacs 23.2)
(transient-mark-mode 1)
;; make typing overwrite text selection
(setq delete-selection-mode 1) ; this turns on transient-mark-mode automatically
Hiển thị mode dấu ngoặc đơn
;; turn on highlight matching parens when cursor is on one
(show-paren-mode 1)
Tham khảo:
[1] http://xahlee.org/emacs/emacs_editing_lisp.html
Có nhiều ngôn ngữ sử dụng các dấu ngoặc để bắt đầu hoặc kết thúc một câu lệnh, chẳng hạn Scheme, Common Lisp, Clojure, hay XML. Nếu chúng ta cài đặt tính năng để emacs tự động highlight các dấu ngoặc (gồm có (, ), <, >) thì điều này cũng có hiệu lực cho các ngôn ngữ như nêu trên.
Lưu ý: Tất cả những trình bày ở dưới đều cấu hình trong file .emacs. Các tác giả [1] đã trình bày khá rõ ràng, tôi chỉ tóm tắt ở đây.
Cài đặt tiện ích làm sáng các dấu ngoặc
;; highlight text selection (on by default since emacs 23.2)
(transient-mark-mode 1)
;; make typing overwrite text selection
(setq delete-selection-mode 1) ; this turns on transient-mark-mode automatically
Hiển thị mode dấu ngoặc đơn
;; turn on highlight matching parens when cursor is on one
(show-paren-mode 1)
Tham khảo:
[1] http://xahlee.org/emacs/emacs_editing_lisp.html
Sách và các tài liệu liên quan đến Common Lisp
Một số tài liệu dưới dạng web được liệt kê như bên dưới:
GTK-SERVER
Gtk-Server Wrapper for Common Lisp
The GTK-server - Interpreted GUI programming
The GTK-server Tutorial
Cello: a Common Lisp GUI
A Brief Guide to CLOS
A Concise Introduction to LISP
An Introduction and Tutorial for Common Lisp
An Introduction to the Common Lisp Object System
ANSI Common Lisp
Books in Lisp Programming
CL-Containers
CLiki : index
CLIM Table of Contents
CLISP - an ANSI Common Lisp Implementation
Common Lisp: A Gentle Introduction to Symbolic Computation
Common Lisp Games
Common Lisp Help and Information
Common Lisp HyperSpec (TM)
Common Lisp Interface Manager (CLIM)
Common Lisp the Language, 2nd Edition
Common Lisp - Wikibooks, collection of open-content textbooks
Condition Handling in the Lisp Language Family'' c by Kent Pitman (2001)
Features of Common Lisp
Frequently Asked Questions for comp.lang.lisp
Getting started in Common Lisp on Ubuntu.
GUI
How to install LISP?? - Ubuntu Forums
How to organize a project via package - comp.lang.lisp | Google Groups
Learning Common Lisp - Ubuntu Forums
Lisp Examples
Lisp FAQ
LispForum • Index page
Lisp Programming Examples
McCLiki : index
McCLIM - A powerful GUI toolkit for Common Lisp
McCLIM/opengl README opengl-frame-manager.lisp opengl-medium.lisp opengl-port.lisp opengl-x-frame-manager.lisp opengl-x-graft.lisp opengl-x-port-after.lisp opengl-x-port-before.lisp
newLISP - Home
Planet Lisp
Programmation Fonctionnelle et Symbolique 2008-2009
scheme-vs-common-lisp
Steel Bank Common Lisp
The Common Lisp Cookbook
The Common Lisp Directory
Welcome to Common-Lisp.net
XFig Version 3.2.5-alpha User Manual
Zach's Journal - Making a small Common Lisp project
- Practical Common Lisp
- Common Lisp Cookbook
- Common Lisp: A Gentle Introduction to Symbolic Computation
- Lisp: the programmable programming language
- Planet Lisp
Lisp
Bindings C for CL
- Paste number 86550: Build font
- CFFI - The Common Foreign Function Interface
- 32.3. The Foreign Function Call Facility
- Tutorial-Loading - CFFI User Manual
- Program Library HOWTO
- ch03.html
- defcfun - CFFI User Manual
- VnExpress - Top sao Hàn có hình thể được thèm muốn nhất - Top sao Han co hinh the duoc them muon nhat
CLOS
GUI in CL
- CL-GTK2
cells-gtk
ltk
- LTK - a Lisp binding to the Tk toolkit
- The ltk-user Archives
- Ltk + Slime + Mac OSX 10.4 + (Clisp or SBCL or OpenMCL or CMUCL) - Rhinocerus
Lisp-Notes
Lisp Tutorial
- Learning Lisp for CMPT 310
- LISP Tutorial 1: Basic LISP Programming
- LISP Tutorial 2: Advanced Functional Programming in LISP
- LISP Tutorial Lecture 3: Data Abstraction
- LISP Tutorial Lecture 4: Imperative Programming
- Common Lisp list tutorial
- syntax in Common Lisp
Practical Common Lisp
- Chapter 01. Introduction: Why Lisp?
- Chapter 02. Lather, Rinse, Repeat: A Tour of the REPL
- Chapter 03. Practical: A Simple Database
- Chapter 04. Syntax and Semantics
- Chapter 05. Functions
- Chapter 06. Variables
- Chapter 07. Macros: Standard Control Constructs
- Chapter 08. Macros: Defining Your Own
- Chapter 09. Practical: Building a Unit Test Framework
- Chapter 10. Numbers, Characters, and Strings
- Chapter 11. Collections
- Chapter 17. Object Reorientation: Classes
Đăng ký:
Bài đăng (Atom)