For some time, I found Common Lisp’s pretty printer to be
intimidating, obscure, and complex, and, for as long as I’ve been
comfortable with the basics of FORMAT
I felt able to ignore it, as
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CL-USER> (load "point-mutations-test.lisp") | |
;; Loading file point-mutations-test.lisp ... | |
To load "lisp-unit": | |
Load 1 ASDF system: | |
lisp-unit | |
; Loading "lisp-unit" | |
;; Loading file /Users/wclifford/exercism/lisp/point-mutations/dna.lisp ... | |
;; Loaded file /Users/wclifford/exercism/lisp/point-mutations/dna.lisp | |
INVALID-TO-GET-DISTANCE-FOR-DIFFERENT-LENGTH-STRINGS: 3 assertions passed, 0 failed. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; One use of `macrolet' is to simplify purely structural concerns in | |
;;; one's functions. As one example, consider this implementation of | |
;;; the quadratic formula: | |
(defun quadratic (a b c) | |
(macrolet ((plus-or-minus-div (x y z) | |
`(values (/ (+ ,x ,y) ,z) (/ (- ,x ,y) ,z)))) | |
(plus-or-minus-div (- b) (sqrt (- (* b b) (* 4 a c))) (* 2 a)))) | |
;;; Although there's still some redundancy, it's contained to the point |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Goals | |
# 1. Small class configurable with a block | |
# 2. puts settings in a ruby Struct | |
require 'Forwardable' | |
class Settable | |
extend Forwardable | |
def_delegator :@config, :foo | |
def_delegator :@config, :bar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ql:quickload "lisp-unit") | |
(defpackage #:mismatch-count-test | |
(:use #:cl #:lisp-unit) | |
(:export #:run)) | |
(in-package #:mismatch-count-test) | |
;;; Tests |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defun char-next (char) | |
"Return the next alphabetic character, per CL standard." | |
(assert (char-lessp char #\Z) | |
(char) "No further characters in the standard alphabet.") | |
(let* ((char-num (digit-char-p (char-upcase char) 36)) | |
(char-next (digit-char (1+ char-num) 36))) | |
(if (lower-case-p char) | |
(char-downcase char-next) | |
char-next))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require 'json) | |
(require 'url) | |
(require 'url-http) | |
;;; http utilities | |
(defun http-utils-response-json (url) | |
"Retrieve url and parse json response." | |
(with-current-buffer (url-retrieve-synchronously url t) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defpackage #:handy-math | |
(:use #:cl) | |
(:export #:onep #:twop | |
#:one-over #:1/ #:halve #:/2 #:integer-factor-p #:factorer | |
#:two-fold #:2* #:multiplier | |
#:^ #:2^ #:^2 | |
#:v*) | |
(:documentation "Handy Math | |
Simple, often used arithmatic operations.")) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'pathname' | |
require 'pp' | |
class HTTPResponseBuilder | |
STATUS_CODES = {100 => "Continue", | |
101 => "Switching Protocols", | |
200 => "OK", | |
201 => "Created", | |
202 => "Accepted", | |
203 => "Non-Authoritative Information", |
OlderNewer