Описание тега s-expression

S-выражения - это обозначение вложенных списков или данных с древовидной структурой, популяризированное языком программирования Lisp.
2 ответа

Что означает ключевое слово send в AST в Ruby?

Я пытаюсь изучить лексер и анализатор Ruby (анализатор whitequark), чтобы узнать больше о процедуре дальнейшей генерации машинного кода из сценария Ruby. При разборе следующей строки кода Ruby. def add(a, b) return a + b end puts add 1, 2 Это привод…
1 ответ

Ошибка в функции печати s-expr

Чтобы отработать свои навыки в Haskell, я следую учебному пособию " Напиши себе схему". Я реализовал парсер для s-выражений, но у меня проблемы с функцией печати. Когда я запускаю следующую программу main :: IO () main = do args <- getArgs putStr…
10 мар '11 в 14:37
3 ответа

Почему большинство языков S-Expression динамически типизируются?

Почему большинство Лиспов и Схем динамически набираются? Разве статическая типизация не смешивается с некоторыми из их общих особенностей?
1 ответ

OCaml sexplib, как определить пользовательскую функцию to_sexplib?

Я использую with sexp синтаксис для автоматического генерирования функций s-exp. Проблема в том, что у структур данных, которые я печатаю с помощью sexplib, есть несколько рекурсивных указателей, и печать заканчивается переполнением стека. Поэтому м…
16 янв '13 в 09:51
1 ответ

Визуализируйте s-выражения в реальном времени

Я хочу написать код Lisp/Scheme/Clojure, как это (map inc (range 0 5)) И визуализировать это примерно так map -- inc \\ range -- 0 \ -- 5 Я хочу видеть, как дерево меняется в реальном времени, когда я манипулирую своим выражением. Поскольку деревья …
4 ответа

Разбор s-выражений с помощью PHP

Ну, мне нужно разобрать 2 текстовых файла. 1 с именем Item.txt и один с именем Message.txt Они являются файлами конфигурации для игрового сервера, Item содержит строку для каждого элемента в игре, а Message содержит имена элементов, описания, сообще…
20 янв '11 в 20:31
2 ответа

Деструктивно перевернуть каждый минус в s-выражении

Есть идеи, как это сделать? Я пытаюсь не создавать никаких новых узлов.
29 сен '09 в 16:47
1 ответ

Построить двоичное дерево из s-выражения в C++

empty tree ::= () tree ::= empty tree | (w tree tree) ex: () empty tree (99(5()())(35(-5()())())) 99 / \ 5 35 / -5 class Node { public: int weight; // weight can be negative! Node *left, *right; Node():weight(0),left(NULL),right(NULL){} Node(int d):…
18 ноя '16 в 04:53
1 ответ

Как мне использовать функции симпатичного принтера Sexplib Джейн Стрит?

Я новый ученик OCaml, и я пытаюсь напечатать некоторые S-выражения, используя Sexplib Джейн Стрит (входит в состав Core): let rec print_source ?(channel = stdout) sexps = let formatter = Format.formatter_of_out_channel channel in Sexp.pp_hum formatt…
2 ответа

Как сопоставить скобки для разбора S-выражения?

Я пытаюсь создать функцию, которая делает следующее: Предполагая, что ввод кода - это "(a 1 2 (b 3 4 5 (c 6) |7) 8 9)", где труба | символом является позиция курсора, функция возвращает: a String "b 3 4 5 (c 6) 7", представляющий код, находящийся в …
3 ответа

Pretty-print Lisp используя Python

Есть ли способ напечатать красивую строку кода в стиле Лисп (другими словами, набор сбалансированных скобок и текст внутри) в Python, не изобретая колесо?
24 окт '15 в 20:42
4 ответа

Emacs: как вычислить наименьшее s-выражение, в котором находится курсор, или следующее s-выражение

Какой хороший способ оценить (+ 100 (+ 100 100)) участие в (+ (+ 1 2) (+ 100 (+ 100 100))) ? Сейчас я делаю это с помощью Cx Ce, что означает, что мне нужно найти конечную скобку, что в большинстве случаев сложно. Options > Paren Matching Highlig…
31 янв '10 в 13:56
2 ответа

Получить крайний список из текущей точки

Как из текущей текущей позиции в буфере Emacs я могу получить самое внешнее список /s-выражение, которое содержит эту точку?Ниже приведены несколько примеров, чтобы проиллюстрировать, чего я хочу достичь: Пример 1: (defun xpto(arg) (+ 2 4)[point]) В…
14 окт '13 в 22:08
1 ответ

Что такое синтаксическое выражение?

Я читал в книге "Земля Лисп", автор упоминает syntax expression, Означает ли это способность выражать синтаксис как форму данных? Это так же, как S-expression (символическое выражение)?
04 мар '12 в 13:46
1 ответ

Работает встроенный R в C

Я написал фрагмент кода C, который объявляет квадратную матрицу размером 4x4. Затем он производит выборку из функции выборки rgig в упаковке GeneralizedHyperbolic в R. Он инвертирует матрицу, используя библиотеку gsl от gnu, и выплевывает результат.…
28 авг '13 в 20:43
2 ответа

Как представить простой документ в виде s-exp?

Я пытаюсь понять, как выразить простой документ в s-выражении. Вот что я имею в виду. Допустим, у меня есть эта простая структура HTML: <h1>Document Title</h1> <p>Paragraph with some text.</p> <p>Paragraph with some &lt…
14 фев '17 в 09:41
2 ответа

Можно ли оптимизировать этот код обработки изображений, чтобы использовать меньше памяти?

У меня есть функция Python, которая принимает строковое s-выражение типа "(add (sub 10 5) 5)", где "add" и "sub" на самом деле являются функциями обработки изображений, а также оценивает и создает изображение, представленное в строке. Функции обрабо…
2 ответа

Маленький предатель "S-выражение"

Is it true that this is an S-expression? xyz спрашивает Маленький интриган. а как проверить? синтаксически я получаю, как проверить другие утверждения, такие как > (atom? 'turkey) а также > (list? '(atom)) не совсем уверен, как это проверить..…
2 ответа

Emacs: пуленепробиваемый список?

Я собираюсь up-list: Scan error: "Unbalanced parentheses" с этой позиции: (foo "bar|") Фрагмент из up-list документ: Эта команда предполагает, что точка не находится в строке или комментарии. Так что это ожидаемое поведение. Но мне все равно. Я прос…
20 сен '13 в 16:14
3 ответа

LISP 1.5. Как lisp похож на машинный язык?

Хотелось бы, чтобы Джон Маккарти был еще жив, но... Из Руководства программиста LISP 1.5: LISP может интерпретировать и выполнять программы, написанные в форме S-выражений. Таким образом, подобно машинному языку и в отличие от большинства других язы…