with Common Lisp
I won't expend effort defending using Common Lisp for these tutorials. Enjoy.
I'm basically a third-class citizen, a Vim user. It's exotic enough that VSCode, Atom, Sublime, etc. users ask me why I use something arcane. Yet, I still garner the disdain of those in the Church of Emacs... especially in the Lisp world.
If you read a lot of other CL tutorials they're going to tell you to setup Emacs + SLIME. I won't, use whatever you want. All that's important is that you have at least a text editor and access to a terminal on a Linux machine, or something close enough.
Now boot up your terminal and type in the following commands.
you@ether:~/$ sudo apt-get install sbcl you@ether:~/$ wget https://beta.quicklisp.org/quicklisp.lisp you@ether:~/$ sbcl --load quicklisp.lisp
Now in the SBCL REPL that is loaded type the following commands
* (quicklisp-quickstart:install) * (quit)
Note: (In the SBCL REPL "*" is the same as $ in your terminal)
And that's it, you're ready to start developing.
We'll be building a REST API client for my employer, Transloadit, because well it'll make my life easier. Your mileage may vary.
;;;; Transloadit REST Client ver. -1.0.0 ;;; Load libraries (load "~/quicklisp/setup.lisp") ;; Load QL package manager (ql:quickload :drakma) ;; Load up drakma HTTP client ;;; Setup placeholder functions for interacting with Transloadit API ;;; Assembly Functions (defun create-assembly (:params p &optional :signature s) ()) (defun get-assembly ()) (defun cancel-assembly ()) (defun replay-assembly ()) (defun list-assemblies ()) ;;; Assembly Notification Functions (defun replay-notification ()) (defun list-notifications ()) ;;; Billing Functions (defun retrieve-bill (year month signature)) ;;; Template Functions (defun create-template()) (defun get-template()) (defun update-template()) (defun delete-template()) (defun list-templates)
Quicklisp is just a package manager. Drakma is just an HTTP client. Transloadit's API is just REST for media