Ответ 1
Гари Нотт Интерпретация Lisp очень приятная. Вы также можете попробовать другие, например Jim Mayfield's Lisp. Там, вероятно, много маленьких Lispов...
Вы упомянули, что вам не нравится C. Возможно, вам понравится Haskell - в этом случае вы можете попробовать "Напишите себе схему в 48 часов" , интересный учебник (вы можете написать интерпретатор схемы в Haskell).
Обновление: Я знаю, что Lisper вряд ли будет чувствовать себя комфортно с помощью Haskell, но эй, он намного удобнее C (по крайней мере для меня)! Кроме того, у HAskell есть хорошая FFI, поэтому было бы легко использовать созданный Haskell Lisp -reader как C-совместимую библиотеку.
Обновление 2: Если вы хотите использовать XLisp, как было предложено другим пользователем, вам, вероятно, понадобится src/xlread.c(863 строки) и включить /xlisp.h(1379 строк) - - но я мог ошибаться...
Обновление 3: Если вы используете Gary Knott Lisp (один единственный C файл с 942 строками), сигнатурой функции является int32 sread (void). Это был бы мой чой, если бы мне не понадобилось ничего фантастического (например, читать макросы) или сильно оптимизировано (есть документ в формате PDF, в котором описывается, как реализован код, поэтому вам не придется искать свой путь в лабиринте). Документация для функции:
This procedure scans an input string g using a lexical token scanning
routine, e(), where e() returns
1 if the token is '('
2 if the token is '''
3 if the token is '.'
4 if the token is ')' or a typed pointer d to an
atom or number stored in row ptrv(d) in the atom or number tables.
Due to the typecode (8 or 9) of d, d is a negative 32-bit integer. The
token found by e() is stripped from the front of g.
SREAD constructs an S-expression and returns a typed pointer to it as
its result.
Посмотрите, что Gary Lisp устарел, и вам нужно будет его изменить, чтобы он компилировался. Вместо включения linuxenv.h включить:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <setjmp.h>
Кроме того, он не работает на 64-битных машинах (документация на песке должна сказать вам, почему...)
Обновление 4: там также Реализации Схемы Нильсом Холмом (есть книги, описывающие внутренности)