Публикации по теме 'scheme'


Как получить Y-Combinator в схеме?
Некоторое время назад я закончил замечательную книгу под названием Маленький интриган . Это очень короткая книга, но она оказывает на меня самое глубокое влияние, когда дело доходит до программирования. Книга представлена ​​в формате вопрос/ответ. Он начинается с основ и постепенно переходит к таким концепциям, как Y-Combinator. Честно говоря, мне пришлось вернуться туда и обратно, чтобы понять происхождение Y-Combinator, но у меня действительно был момент «Ага», когда я наконец..

Настройка Emacs для SICP с нуля
Я открыл для себя brew install mit-scheme 1?dchild=1&keywords=sicp&qid=1599789084&sr=8-1">Структуру и интерпретацию компьютерных программ , и это очень весело. Итак, я решил, что поделюсь, как настроить Emacs для работы с ним. Эта статья не предполагает никаких предварительных знаний о Emacs. Конечный результат: Emacs + MIT-Scheme + Geiser. Сначала установите MIT-Scheme, диалект Лиспа, используемый в книге: brew install mit-scheme или sudo apt install mit-scheme . Если вы..

Чтение Доктора - Глава 1
Это мой первый и, надеюсь, не последний пост о книге Маленький испытатель . В течение следующих нескольких недель я буду писать о том, что я узнал из каждой главы. Зачем это записывать? Просто, чтобы я мог вспомнить, что я узнал. В этом году я много читал, но не могу с уверенностью сказать, что многому научился, читая их. Я думаю, что могу с уверенностью сказать, что я чему-то научился, только когда мне удалось сформулировать свои мысли, записав это. Я считаю, что записывание вещей..

Safari 10 поддерживает полный ES2015, включая правильные вызовы хвоста.
Одной из новых функций ES2015 (ES6) являются правильные хвостовые вызовы (PTC). Несмотря на то, что это указано в первой строке Таблицы совместимости ES6 , еще не многие браузеры/среды выполнения реализуют это. Среди них Safari 10, выпущенный в прошлом месяце, который включает поддержку PTC. PTC по библиотеке Около четырех лет назад я разработал библиотеку под названием continuation.js . Это поддерживает PTC, преобразовывая код JavaScript, который имеет рекурсивные хвостовые вызовы,..

Вопросы по теме 'scheme'

Как взять часть списка (подсписка) в схеме?
Учитывая список, как мне выбрать новый список, содержащий фрагмент исходного списка (с учетом смещения и количества элементов)? РЕДАКТИРОВАТЬ: Пока хорошие предложения. Не указано ли что-то в одном из SRFI? Это кажется очень фундаментальной...
19546 просмотров
schedule 18.11.2022

Как лучше всего изучить LISP?
Я занимаюсь программированием на Python, PHP, Java и C уже пару лет, и я только что закончил читать «Хакеры и художники», так что я хотел бы попробовать LISP! Я понимаю, что это совершенно не то, что я знаю, и что это будет нелегко. Также я думаю...
56210 просмотров
schedule 07.06.2022

Что происходит в предложении «cond» схемы, когда «else» опущено?
Я в процессе изучения Scheme. Недавно я потратил (слишком много!) времени, пытаясь найти ошибку в программе, прежде чем понял, что мне не хватает слова «else» в предложении cond. Но поведение в таких обстоятельствах кажется немного странным....
8708 просмотров
schedule 02.08.2023

Простейший пример обратного продолжения в схеме без явной мутации
Я написал небольшой интерпретатор Scheme на C# и понял, что так, как я его реализовал, было очень легко добавить поддержку правильных продолжений. Итак, я добавил их... но хочу «доказать», что то, как я их добавил, правильно. Однако мой...
570 просмотров

Сопоставление шаблонов в схеме
Как мне принять следующий ввод? (list of 0 or more charcters and ends with 3) or (list of 1 or more characters 4 and 0 or more characters after 4) что-то типа (match ( list 3)) -> #t (match ( list 1 2 3)) -> #t (match (list 1 2...
1442 просмотров

Как мне сделать модуль на схеме PLT?
Я пробовал это сделать: #lang scheme (module duck scheme/base (provide num-eggs quack) (define num-eggs 2) (define (quack n) (unless (zero? n) (printf "quack\n") (quack (sub1 n))))) Но я получаю...
611 просмотров

Рекомендации по настройке lisp на Mac OS X (любой диалект)?
Какова ваша установка lisp на основе Mac OS X (Intel) (любого диалекта), как она вам нравится и насколько болезненной была ее настройка? Я ищу универсальный лисп, который легко настроить, но если вы твердо намерены вложить больше усилий или даже...
8281 просмотров
schedule 07.01.2023

Преобразование байтовой строки в Int в схеме
У меня есть такой код для преобразования шестнадцатеричного кода в байтовую строку (define (word->bin s) (let ((n (string->number s))) (bytes (bitwise-and (arithmetic-shift n -24) #xFF) (bitwise-and (arithmetic-shift n -16) #xFF)...
2126 просмотров
schedule 06.05.2022

Когда использовать (значения) (определить значения) в схеме
Я прочитал документацию по таким функциям, как значения и определения значений, которые возвращают и используют несколько значений. Я понимаю, что они делают. Мне не ясно, когда вы захотите использовать такую ​​​​вещь. Когда было бы...
2515 просмотров
schedule 30.11.2022

Проверить содержание строки в схеме
Как проверить в DrScheme , содержит ли строка заданный символ/подстроку? Как включить правильный модуль, если он определен в модуле?
199 просмотров
schedule 15.12.2022

Как вы могли бы реализовать дизайн по контракту в Clojure в частности или в функциональных языках в целом?
Я бы предпочел, чтобы примеры были в варианте Lisp (бонусные баллы для Clojure или Scheme), поскольку это то, с чем я лучше всего знаком, но любой отзыв о DBC в функциональных языках, конечно, будет ценен для большего сообщества. Вот очевидный...
1122 просмотров

Функция в Scheme для замены всех вхождений элемента в списке другим элементом.
Я могу удалить элемент из списка, но я понятия не имею, как написать функцию на схеме для замены всех вхождений элемента в списке другим элементом. Любая помощь будет оценена.
4060 просмотров
schedule 23.05.2022

Схема: Почему здесь необходимо использовать условие?
Я попытался написать (простую, т.е. без eqan? ) one? функцию вроде такой: (define one? (lambda (n) ((= 1 n)))) Но приведенное выше не работает, потому что, когда я называю это так: (one? 1) Меня встречает эта ошибка:...
283 просмотров
schedule 04.10.2022

Как разбить длинные строковые строки в схеме?
Например, я хочу разорвать длинную строку в приведенном ниже заявлении о панике: (panic "Truth-assignment length is longer than the number of propositions!") Я пробовал (panic "Truth-assignment length is longer than the number \ of...
938 просмотров

Схема Поиск в глубину графовой функции
Это вопрос домашнего задания, я пытаюсь выполнить функцию поиска в глубину в схеме, вот код, который я написал до сих пор: (define explore (λ(node visited) (let* ([neighbors (force (cdr node))] [next (nextNode visited...
3838 просмотров
schedule 18.11.2022

Продолжение (call / cc) в схеме
Мне нужно понять «Продолжения в схеме» для предстоящих экзаменов, и я вообще не имею представления о продолжениях. Может ли кто-нибудь предложить мне источники того, как продолжить обучение? С уважением, смуглый
3334 просмотров
schedule 17.04.2022

Определение лисп-формы?
Что именно определяет «форма Лиспа»? Насколько я знаю, это «либо атом, либо список, в котором первым элементом является символ». Но тогда это (в схеме) не будет формой: ((lambda () 42)) ;; The answer to Life, the Universe and Everything....
6222 просмотров
schedule 22.08.2022

Как написать макрос схемы, который определяет переменную, а также получает имя этой переменной в виде строки?
В основном это продолжение этот вопрос . Я решил не забывать о YAGNI и создал глобальную переменную ( libpython ). Сначала я установил его на #f , затем set! , когда вызывается init . Я добавил функцию, которая должна проверять,...
378 просмотров
schedule 21.07.2022

Схема: CAR и CDR списка
Я не понимаю, как car и cdr работают со списками. Вот пример того, что я пробовал: (define sample (read)) (display sample) (display (car sample)) (display (cdr sample)) (display (car (cadr sample))) (display (cdr (cdr sample))) При вводе...
2578 просмотров
schedule 20.01.2023

Что мне нужно сделать, чтобы получить оплату Scheme?
Я большой поклонник функционального программирования в целом, Schemes в частности и PLT-Racket в идеале. Мне интересно, какие конкретные шаги, вероятно, приведут меня к тому, что основная часть работы будет заключаться в написании Scheme (или...
923 просмотров
schedule 13.02.2023