MIT/GNU Scheme компиляция - Lisp

  1. Читаю SICP, и встал вопрос, как компилировать программы на Scheme в традиционный исполняемый файл? Наверное, там будет ответ дальше, но вопрос меня волнует сейчас. Пользуюсь реализацией MIT/GNU Scheme.


textual

Код к задаче: «MIT/GNU Scheme компиляция - Lisp»

(load "foo.scm")
(load "bar.com")

СДЕЛАЙТЕ РЕПОСТ

14   голосов, оценка 4.000 из 5



Похожие ответы
  1. После года самостоятельного изучения Python в качестве первого и основного ЯП, пришел я в университет в магистратуру, где в качестве функционального ЯП предлагается писать задачи на Scheme. Привыкнув писать по императивной парадигме, спотыкаться начал практически сразу же. Например. Требуется написать программу, которая вычисляет день недели по дате. Пусть процедура принимает год-месяц-день и возвращает числа от 0 (понедельник) до 6 (воскресенье). Покопавшись по вопросу реализации подобного алгоритма, набрёл на интересное решение на Python:Python1 2 3 4 5 6 7 def whatDay(day, month, year):     days = ["пн","вт","ср","чт","пт","сб","вс"]     a = (14 - month) // 12     y = year - a     m = month+12 * a-2     result = ((7000 + (day + y + y//4 - y//100 + y//400 + (31*m) // 12)) % 7) - 1     return days[result]Не получается перестроить данное решение под, собственно, Scheme. Пробовал так:

  1. В SICP сказанно что после предиката в cond может быть последовательность выражений, а в if - только одно. Я собственно не пойму, что за "последовательность выражений"?

  1. Хочу опробовать генетические алгоритмы, но застопорился на выполнении. Есть функция, которая генерирует функции (исходный текст не прикладываю, дабы не раздувать пост, но, если понадобится, выложу)

  1. Ребят помогите пожалуйста, нужно написать веб страницу с тремя формочками для ввода информации и одной кнопки на Scheme.

  1. Началось все с одной несложной задачки - Каково первое треугольное число, у которого более пятисот делителей? Я написал наивный алгоритм на Haskell, он выполнялся полторы секунды. Ограничил типы целых до Int - время выполнения снизилось до 0.3 сек - столько же, сколько аналогичный алгоритм на C#, реализованный через циклы. Потом я буквально перевел этот алгоритм на свой Liscript (реализация на Java), рекурсивный эвалюатор считает 40 секунд, итеративный - почти 4 минуты. Понятно - интерпретация без особых оптимизаций, в итеративном варианте еще и с велосипедным стеком вместо системного. Стало мне немного грустно, и захотелось попытаться ускорить безобразие . Радикальным методом - через компиляцию (трансляцию) кода Liscript в код на каком-нибудь другом языке. И я внезапно вспомнил, что вдохновлялся SICP-ом и вообще по семантике мой диалект во многом похож на Scheme, и будет достаточно несложно сделать трансляцию и сравнить время выполнения. Досыпав вдвое больше скобок в свой исходный код я получил работающий аналог:

  1. Для заданного списка определить максимальное количество идущих подряд списков.Добавлено через 22 часа 25 минут Ну помогите пожалуйста с задачкой!

  1. пытаюсь написать программу, которая для списка определяет максимальное количество идущих подряд атомов.

  1. Определить, есть ли в списке два подряд идущих списка. посмотрите пожалуйста