4 Functions and Modules

4.3 Modules

4.3.1 What Modules Do

4.3.2 What Modules Don't Do

4.3.3 Creating a Module

4.3.4 Parameterized Modules

(defmodule (zaphod-rest-api request)
  (export (get-greeting 2)))

(defun get-greeting
  (('GET ())
   (tuple 'output "Zaphod says 'hello!'"))
  (('GET _)
   (tuple 'output "Zaphod says 'hello' to anything...")))
> (set req (zaphod-rest-api:new "a request"))
#(zaphod-rest-api "a request")
> (call req 'get-greeting 'GET ())
#(output "Zaphod says 'hello!'")
> (call req 'get-greeting 'GET "stuff")
#(output "Zaphod says 'hello' to anything...")

4.3.5 Projects

To see how modules are organized into projects, be sure to read the chapter on Development and Deployments.