Вопросы по теме '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 просмотров

Объяснение условного выражения 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