Инструкция о том, как установить этот чудесный инструмент уже давалась в этом блоге, прошу обратиться к заметке по настройке окружения. Здесь же условимся в том, что quicklisp у Вас же установлен. Теперь стоит немного пролить свет на то, как он работает и какие команды понимает. Поехали!
Загрузка пакета
Основная команда, которой вы будете пользоваться большую часть времени это:
(ql:quickload system-name)
Здесь вместо system-name нужно вставить название необходимого пакета или библиотеки. Quicklisp сам найдёт и загрузит все зависимости. После того как команда отработает пакет уже будет загружен и готов к использованию. Вот небольшой пример загрузки библиотеки для работы с векторами:
(ql:quickload "vecto") (defpackage #:vecto-examples (:use #:cl #:vecto)) (in-package #:vecto-examples) (defun feedlike-icon (file) (with-canvas (:width 100 :height 100) (set-rgb-fill 1.0 0.65 0.3) (rounded-rectangle 0 0 100 100 10 10) (fill-path) (set-rgb-fill 1.0 1.0 1.0) (centered-circle-path 20 20 10) (fill-path) (flet ((quarter-circle (x y radius) (move-to (+ x radius) y) (arc x y radius 0 (/ pi 2)))) (set-rgb-stroke 1.0 1.0 1.0) (set-line-width 15) (quarter-circle 20 20 30) (stroke) (quarter-circle 20 20 60) (stroke)) (rounded-rectangle 5 5 90 90 7 7) (set-gradient-fill 50 90 1.0 1.0 1.0 0.7 50 20 1.0 1.0 1.0 0.0) (set-line-width 2) (set-rgba-stroke 1.0 1.0 1.0 0.1) (fill-and-stroke) (save-png file))) (feedlike-icon "~/1f.png")
Пример кода для рисования я взял с официального сайта библиотеки. На выходе я получил файл-картинку в домашнем каталоге. Что на ней не сложно догадаться, но загружать я не буду, чтобы вы проверили сами.
Поиск и обновление пакетов
Иногда полное имя пакета не известно, для того, чтобы провести поиск по подстроке существует команда:
(ql:system-apropos substring)
Для обновления всех пакетов есть команда:
(ql:update-all-dists)
Для обновления самого quicklisp:
(ql:update-client)
Итог
Вот так подтверждается утверждение о том, что всё гениальное просто. Однако, это не исчерпывающий список команд. Кому интересно — могут обратиться на сайт самого quicklisp и к его документации. К тому же по мере развития блога и написания новых статей я и сам буду расширять список известных команд. В планах сделать небольшой справочник по командам lisp, для того, чтобы было, во-первых, удобней ориентироваться, во-вторых был список всех команд, которые есть. Например список всех команд для обработки строк. На данный момент я уделяю не так много времени проекту, поэтому пока это только мечты.