Шестой пересмотренный отчет по алгоритмической языковой схеме.
2 ответа

Гигиенический макрос r7rs: вернуть значение второго выражения

В настоящее время я изучаю некоторые r7rs и пытаюсь реализовать макрос 'begin' следующим образом: (begin0 expr0 expr1 ... expr2) С expr, являющимся регулярным выражением (Like (set! X (+ x 1))) И begin0 как макрос, который вычисляет все выражения, н…
27 ноя '18 в 15:14
2 ответа

Как мне вернуть копию объекта?

Мне нужно реализовать функцию одного аргумента - obj - который возвращает выражение Scheme, которое при оценке вернет копию obj, Любые идеи о том, как решить проблему?
24 фев '11 в 10:38
7 ответов

Схема прохождения по ссылке

Как я могу передать переменную по ссылке в схеме? Пример функциональности, которую я хочу: (define foo (lambda (&x) (set! x 5))) (define y 2) (foo y) (display y) ;outputs: 5 Кроме того, есть ли способ вернуться по ссылке?
2 ответа

Существует ли дайджест для различных стандартов Схемы "RnRS"?

Мне нужно выбрать стандарт Scheme для академической реализации компилятора. Он должен быть достаточно простым, но все же должен быть мощным языком. Существует несколько (RRS–R7RS) стандартов Схемы. Есть ли публичное сравнение этих отчетов для выбора…
10 сен '13 в 07:45
4 ответа

Сокращение для ((лямбда ()))

Есть ли схема в схеме для ((lambda ())) Например, вместо ((lambda () (define x 1) (display x))) Я хотел бы иметь возможность сделать что-то вроде (empty-lambda (define x 1) (display x))
18 окт '11 в 03:09
1 ответ

В чем разница между R6RS `letrec`, `letrec*`и Racket`letrec`?

И то и другое letrec а также letrec* в R6RS, но есть только letrec в ракетке нет letrec*, Каковы различия между ними?
07 дек '13 в 11:17
1 ответ

Несоответствие Arity при построении дочернего типа записи

У меня есть point Тип записи определяется следующим образом: (define-record-type point (make-point x y) point? (x point-x) (y point-y) ) Теперь я хочу расширить point тип записи и определите новый тип записи следующим образом: (define-record-type cp…
11 авг '17 в 13:16
1 ответ

Как написать макрос, который поддерживает локальное состояние?

Кажется, это работает, это макрос, который расширяется до последовательных целых чисел в зависимости от того, сколько раз он был расширен. ;; Library (test macro-state) (library (test macro-state) (export get-count incr-count) (import (rnrs)) (defin…
09 авг '11 в 06:56
2 ответа

Тело библиотеки R6RS: определение после выражения

Рассмотрим следующий код: #!r6rs (library (test) (export) (import (rnrs)) (define a 5) (begin (define b 4) (+ 3 b)) 'cont (define c 5) 'done) Из отчета R6RS 7.1: <Тело библиотеки> похоже на <тело> (см. Раздел 11.3), за исключением того, что <тело би…
26 апр '13 в 02:28
1 ответ

Код продолжения, который ничего не делает

Может быть, мой вопрос имеет очень простой ответ, но я не могу его найти. В схеме R6RS, как я могу построить продолжение, которое ничего не делает и требует каких-либо аргументов? Моя цель - иметь продолжение, назовем его QUIT такой, что если у меня…
30 апр '12 в 14:26
2 ответа

Преимущества различных реализаций Scheme R6RS

Я хотел бы начать программирование на Scheme, но разнообразие различных реализаций сбивает с толку. Каковы некоторые преимущества или недостатки различных реализаций?
26 ноя '10 в 17:59
1 ответ

Пропуск комментария к датам "#;" при создании парсера для R6RS с ANTLR4

Я пытаюсь написать лексер / парсер для R6RS, и я застрял с комментарием, пропускающим данные Вот некоторая часть моих правил лексера / парсера: BOOLEAN: '#t' | '#f' | '#T' | '#F'; NUMBER: DIGIT+; // TODO: incomplete CHAR: '#\\' CHARNAME | '#\\x' HEX…
23 апр '13 в 12:41
1 ответ

Нужно ли использовать дисплей для вывода материала с использованием r6rs?

Предыстория: я новичок в схеме и использую DrScheme для написания своих программ. Следующая программа выводит 12345, когда я запускаю программу как r5rs: 12345 Однако следующая программа ничего не выводит (это программа r6rs): #!r6rs (import (rnrs))…
03 июн '10 в 01:21
1 ответ

Схема: используя только R6RS, как определить мантиссу и показатель степени

Возможно ли извлечь мантиссу и экспоненту из поплавка в основных реализациях Схемы R6RS, чтобы:v = fxb ^ eф - мантиссаб - базае - показатель степени Например: 3,14 = 0,785 x 2^2 Если это не поддерживается, я бы хотел иметь доступ к битам flonum (IEE…
1 ответ

Почему все процедуры должны быть определены до того, как компилятор их увидит?

Например, взгляните на этот код (из tspl4): (define proc1 (lambda (x y) (proc2 y x))) Если я запускаю это как мою программу в схеме... #!r6rs (import (rnrs)) (define proc1 (lambda (x y) (proc2 y x))) Я получаю эту ошибку: expand: unbound identifier …
04 июн '10 в 20:08
6 ответов

Может ли кто-нибудь объяснить мне понятие "гигиена" (я программист)?

Итак... Я новичок в схеме r6rs и изучаю макросы. Может кто-нибудь объяснить мне, что означает "гигиена"? Заранее спасибо.
09 июн '10 в 22:36
1 ответ

Поддержка Racket R6RS: синтаксис-кейс

Эта простая программа R6RS: #!r6rs (import (rnrs base) (rnrs syntax-case) (rnrs io simple)) (define-syntax stest (lambda (x) (syntax-case x () ((_ z) #'(z 0))))) (stest display) работает с Chez, Guile и Ypsilon, но не с Racket. Это дает мне это: tes…
12 июн '18 в 15:43
2 ответа

Обнаружение платформы (ОС) в схеме

Это должно быть что-то вроде этого: (if (= system-type 'gnu/linux) (system "make")) Честно говоря, я думаю, что моя схема реализации даже не может сделать это в любом случае, но я могу добавить реализацию для этого. Каков обычный синтаксис схемы для…
20 янв '12 в 12:54
1 ответ

Экспорт заполненной хеш-таблицы из библиотеки

Вот библиотека, которая экспортирует хеш-таблицу. Библиотека также содержит выражения, которые заполняют хеш-таблицу: (library (abc-1) (export tbl) (import (rnrs)) (define tbl (make-eq-hashtable)) (hashtable-set! tbl 'a 10) (hashtable-set! tbl 'b 20…
30 июн '11 в 17:02
1 ответ

Порядок оценки в схеме

Вот что работает: (define obj1 (maak-object (coord 1 1) #f #f #t)) (set! karaktersenobjectenlijst (append karaktersenobjectenlijst (list (list 'object obj1))))) &gt; (cadar karaktersenobjectenlijst) obj1 &gt; (positie obj1) {1 . 1} Это не работает: …
11 фев '11 в 14:36