husk-scheme-3.6: R5RS Scheme interpreter, compiler, and library.

CopyrightJustin Ethier
LicenseMIT (see LICENSE in the distribution)
Maintainergithub.com/justinethier
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Language.Scheme.Primitives

Contents

Description

This module contains primitive functions written in Haskell. Most of these map directly to an equivalent Scheme function.

Synopsis

Pure functions

List

Vector

Hash Table

String

doMakeString :: forall a. (Num a, Eq a) => a -> Char -> String -> LispVal Source

Character

charPredicate :: (Char -> Bool) -> [LispVal] -> ThrowsError LispVal Source

Determine if given character satisfies the given predicate

Predicate

Utility functions

Impure functions

All of these functions must be executed within the IO monad.

Input / Output

Symbol generation

gensym :: [LispVal] -> IOThrowsError LispVal Source

Generate a (reasonably) unique symbol, given an optional prefix. This function is provided even though it is not part of R5RS.

_gensym :: String -> IOThrowsError LispVal Source

Version of gensym that can be conveniently called from Haskell.