(sigil spec)
(sigil spec) - Procedure Specification Utilities
Provides utilities for working with procedure specs — machine-readable predicate-based annotations on procedures.
(import (sigil spec))
(define (add a b)
(: number? number? -> number?)
(+ a b))
(spec->string (procedure-spec add)) ; => "number? number? -> number?"Exports
spec->stringprocedureFormat a spec list as a readable string.
Converts a spec list (as returned by procedure-spec) into a human-readable string representation.
(spec->string '(number? number? -> number?)) ; => "number? number? -> number?"
(spec->string '(string? (end: integer?) -> string?))
; => "string? (end: integer?) -> string?"void?procedureTest if a value is void (the undefined value).
Returns #t if x is the void/undefined value (produced by (if #f #f)).
(void? (if #f #f)) ; => #t
(void? 42) ; => #fany?procedureAlways-true predicate for "any type" in specs.
Re-exported from (sigil core)
any-ofprocedureReturn a predicate accepting values satisfying any of the given predicates.
((any-of string? number?) "hi") ; => #t
((any-of string? number?) 42) ; => #t
((any-of string? number?) #t) ; => #fRe-exported from (sigil core)
none-ofprocedureReturn a predicate rejecting values that satisfy any of the given predicates.
((none-of string? number?) #t) ; => #t
((none-of string? number?) "hi") ; => #f
((none-of string? number?) 42) ; => #fRe-exported from (sigil core)
maybeprocedureReturn a predicate accepting #f or values satisfying pred.
((maybe string?) "hi") ; => #t
((maybe string?) #f) ; => #t
((maybe string?) 42) ; => #fRe-exported from (sigil core)
list-ofprocedureReturn a predicate accepting lists where every element satisfies pred.
((list-of number?) '(1 2 3)) ; => #t
((list-of number?) '(1 "a" 3)) ; => #f
((list-of number?) '()) ; => #tRe-exported from (sigil core)