Вопросы по теме 'sicp'
отложенное выполнение python
Для реализации потоков в виде отложенных списков в Лиспе рекомендуется использовать макросы Lisp.
(defmacro cons-stream (a b)
(cons ,a (delay ,b)))
(defmacro delay (expr)
`(memo-proc (lambda () ,expr)))
Что бы Python и Perl сделали...
634 просмотров
schedule
02.04.2022
Хочу реализовать интерпретатор схем для изучения SICP
Я читаю книгу Структура и интерпретация компьютерных программ , и я хотел бы постепенно кодировать интерпретатор схемы.
Знаете ли вы реализацию схемы наиболее легко читаемой (и короткой)? Я сделаю JavaScript на C.
2350 просмотров
schedule
25.04.2023
Схема потоков матриц
Я хотел бы иметь поток в схеме, который содержит кучу матриц определенного порядка.
Потоком этого потока будет матрица [1 6 0 3]; то есть строка 1 столбец 1 равна 1, строка 1 столбец 2 равна 6, строка 2 столбец 1 равна 0, а строка 2 столбец 2...
212 просмотров
schedule
11.07.2022
Написание интерпретатора схемы с помощью FPC: рекурсивные структуры данных
По сути, это вопрос о рекурсивных структурах данных в Паскале (FPC). Поскольку я хотел бы реализовать интерпретатор Scheme, как показано в главе 4 SICP, этот вопрос может быть актуален и для Schemers. :)
S-выражения должны быть представлены в...
382 просмотров
schedule
19.12.2022
Написание интерпретатора схемы с помощью FPC: размещение и указатели
Будучи историком, пишу интерпретатор схемы в FPC оказывается уже на первом этапе для меня серьезной задачей. :) Я слежу за блогом Питера Мишо, , который показал, как это сделать на C (есть также перевод на Ada , который может быть полезен для...
274 просмотров
schedule
19.05.2023
Запоминание во время отложенной оценки
Книга Структура и интерпретация компьютерных программ знакомит с процедура запоминания выглядит следующим образом:
(define (memo-proc proc)
(let ((already-run? false) (result false))
(lambda ()
(if (not already-run?)...
483 просмотров
schedule
10.06.2022
Объяснение условного выражения SICP lisp 'if'
Я работаю через SICP и добрался до части кода с квадратным корнем. Я понял, что за операторами if могут следовать только отдельные выражения. Однако в коде
(define (sqrt-iter guess x)
(if (good-enough? guess x)
guess
(sqrt-iter...
331 просмотров
schedule
22.02.2024
не понимаю процедуру схемы в SICP
Я работаю над главой 1 SICP "1.3 Формулирование абстракций с помощью процедур более высокого порядка"
часть, с которой у меня (в настоящее время) возникают проблемы, заключается в том, что процедурный шаблон (показанный ниже) преобразуется в...
552 просмотров
schedule
09.03.2023
Могу ли я заменить видео лекций SICP конспектами лекций SICP?
Насколько я понимаю, знаменитая лекция SICP видео :
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/
Являются дополнительным материалом...
874 просмотров
schedule
15.04.2022
Определение минусов, автомобиля и cdr с помощью лямбды — как это работает?
Кажется, я не могу объяснить, как работает это определение cons, car и cdr:
(define (p-cons x y)
(lambda (proc) (proc x y)))
(define (p-car proc)
(proc (lambda (p q) p)))
(define (p-cdr proc)
(proc (lambda (p q) q)))
Я понимаю, что...
441 просмотров
schedule
01.03.2024
Понимание связанных и свободных переменных в LISP
Я читаю SICP и тут всплывает тема связанных и свободных переменных. Однако я в замешательстве. Применяется ли термин «связанные переменные» только к переменным, которые являются формальными параметрами? Кроме того, в тексте сказано, что...
652 просмотров
schedule
26.06.2023
Итерационная факторная процедура в SICP
Это факториальная процедура из SICP, которая генерирует рекурсивный процесс.
(define (factorial n)
(if (= n 1)
1
(* n (factorial (- n 1)))))
Теперь это та же процедура, но порождающая итеративный процесс. Счетчик...
712 просмотров
schedule
13.07.2022
Вычисление истины в мета-круговом оценщике в Clojure
Я преобразовал структуру и интерпретацию компьютера Программы (SICP) версия мета-циркулярного оценщика Clojure. Основное отличие (помимо синтаксиса) - это обработка структуры среды. Поскольку вы не можете использовать set-car! и set-cdr! в...
131 просмотров
schedule
09.01.2024
Что вызывает ошибку несвязанной переменной в схеме?
Я начал с SICP, и я новичок в Scheme. Я пробовал отлаживать этот фрагмент кода и даже сравнивал его с аналогичными решениями.
(def (myFunc x y z)
(cond ((and (<= x y) (<= x z)) (+ (* y y) (* z z)))
((and (<= y x) (<= y...
1456 просмотров
schedule
18.02.2022
SICP ex4.12 об акции и вызове по значению
(define (make-frame var val)
(cons var val))
(define (frame-variables frame) (car frame))
(define (frame-values frame) (cdr frame))
(define (add-binding-to-frame! var val frame)
(set-car! frame (cons var (car frame)))
(set-cdr! frame (cons val...
64 просмотров
schedule
04.06.2023
SICP - Умножение через сложение
Я использую книгу SICP и пытаюсь решить это упражнение:
1.2.4 Возведение в степень
Упражнение 1.18. Используя результаты упражнений 1.16 и 1.17, придумайте процедуру, которая генерирует итеративный процесс умножения двух целых чисел...
125 просмотров
schedule
21.04.2024
Как установить модуль пакета sicp в рэкет?
Я новичок в мире программирования. Я использую ОС ubuntu . Я начал свое путешествие с книги sicp . Я работаю с scheme repl . Но вдруг я застреваю в разделе 2.2. .4
Я не могу выполнить его пример с scheme repl . Я попытался запустить...
1685 просмотров
schedule
01.06.2024
Ошибка установки нагрузки-шумно? и автоматический выход в MIT-Scheme
Чтобы отлаживать сценарии MIT-Scheme с помощью Vim, я хочу иметь возможность запускать редактируемый в данный момент файл сценария как можно удобнее. Вот что я делаю:
sicp.scm
(set! load-noisily? #t)
(define
(abs x)
(cond...
246 просмотров
schedule
04.01.2023
SICP: Нестрогие или ленивые «минусы», как это работает?
Ниже приведен отрывок из книги SICP, раздел 4.2.3 Потоки как отложенные списки :
При ленивом вычислении потоки и списки могут быть идентичными, поэтому нет необходимости в специальных формах или отдельных операциях со списками и потоками....
184 просмотров
schedule
16.09.2022
Лексическая область видимости и совместное использование объектов
Рассмотрим процедуру пополнения счета в SICP.
(define (make-account balance)
(define (withdraw amount)
(if (>= balance amount)
(begin
(set! balance (- balance amount))
balance)
"Insufficient funds"))...
82 просмотров
schedule
30.06.2022