LINUX.ORG.RU

Посоветуйте минималистичный интерпретатор схемы

 ,


3

2

Для организующих всякие данные скриптов - к производительности высоких требований нет, т.к. операции предполагаются элементарные, чтобы быстро стартовал, был способен грузить динамические библиотеки через ffi, желательна поддержка geiser для удобства разработки. Иными словами нужна замена clisp - CL уже приелся и хочу уже взглянуть на какой-нибудь r7rs, раздутый стандарт CL вроде меньше подходит для вышеназванных требований. Попробовал racket - не понравился, по ощущениям sbcl лучше отвечает требованиям не говоря уже про clisp.

★★★★★

Последнее исправление: ados (всего исправлений: 2)

Guile? Интерпретаторы схемы всегда минималистичны на фоне того с чем ты сравниваешь.

cvv ★★★★★
()
#lang racket

Так? В таком виде он тяжеловат. Надо так:

#lang racket/base

Hertz ★★★★★
()
Ответ на: scheme48 от anonymous

Хотел тоже посоветовать, но он же протух. Как и большинство мелких схемок.

no-such-file ★★★★★
()

Chibi Scheme, лёгкий референсный интерпретатор r7rs.

Puzan ★★★★★
()

Схемы выбирал-выбирал неоднократно, но после схемы CL - это всё же глоток свежего воздуха. Как можно без параметров-ключей? Хотя не знаю, может, уже завезли. CCL не подходит? А что такое geiser?

den73 ★★★★★
()
Ответ на: комментарий от den73

А что такое geiser?

Что для CL slime, то для схемы geiser... или хотя бы пытается быть аналогом.

ados ★★★★★
() автор топика

Внезапно посоветую Pharo, все что ты написал есть, плюс куча либ для отображения данных и удобство разработки думаю лучшее на сегодня.

loz ★★★★★
()

Рекомендую взглянуть на Gerbil Scheme

Из плюсов:
1) Быстро стартует в режиме интерпретатора (если скомпилировать скрипт предварительно - будет вообще молния)
2) Хороший ffi
3) Есть модуль для emacs
4) Хорошая стандартная библиотека, почти все нужное есть
5) Крутые макросы

Из минусов:
1) Маленькое сообщество
2) Документация еще в процессе написания и далека от идеала

Субъективно, мне понравился больше, чем Racket.

xerx
()
Ответ на: комментарий от Puzan

Главное что человек рассказал о чём-то мной не виданном, а это не всякие picolisp-ы и newlisp-ы.

ados ★★★★★
() автор топика

PicoLisp

Не схема, но тоже лисп. Единственный лисп, который приятно видеть даже не пользуясь лиспами ни в каком виде. Красота инженерной мысли.

Deleted
()
Ответ на: комментарий от den73

Как можно без параметров-ключей?

Это keywords или defparameter? Впрочем, есть и то и другое.

keywords: srfi-88, srfi-89

defparameter: srfi-39

monk ★★★★★
()
Ответ на: комментарий от loz

Внезапно посоветую Pharo

А он точно подходит под:

Для организующих всякие данные скриптов ..., чтобы быстро стартовал ...

?

И его в текстовом режиме вообще запустить можно?

monk ★★★★★
()
Ответ на: комментарий от ados

И судя по всему интерпретатор Gerbil Scheme - прослойка над интерпретатором Gambit Scheme

Так и есть, Gerbil - метаязык, транслируемый в Gambit. Так же, как сейчас у Racket в качестве бэкенда используется Chez.

Gerbil на мой взгляд добавляет «сахар» и удобные повседневные инструменты — паттерн матчинг, генерики, корутины, систему акторов, менеджер пакетов, профайлер и т.д.

Если хочется потыкать — рекомендую не мучаться с установкой и сборкой, а скачать готовый докер контейнер и поиграться в repl

xerx
()
Ответ на: комментарий от loz

А он как емакс, его не надо перезапускать

Так из Pharo вроде и bash c mc не запустить. Emacs хоть как ОС годится.

А текстовый режим не особо нужен.

Ну да. Зашёл на свой компьютер по ssh, надо скрипт запустить, а для этого надо найти X Window сервер и достаточно широкий канал передачи данных (причём, насколько я помню, Pharo рисует картинками как GTK, а не объектам X Window).

monk ★★★★★
()
Ответ на: комментарий от monk

Ты пытаешься применить привычный подход к совершенно другому миру, не надо так. В Pharo есть свой файловый браузер, и с шелл коммандами проблем нет. Для работы с удаленным образом есть https://github.com/pharo-ide/TelePharo никакие платформозависимые X сервера не нужны.

loz ★★★★★
()
Ответ на: комментарий от loz

Ты пытаешься применить привычный подход к совершенно другому миру, не надо так

Так есть привычные задачи. Их надо как-то решать. Либо запускать Pharo из других скриптов, либо как-то интегрировать другие скрипты средствами Pharo. Если «как emacs», то должен быть аналог M-x term, M-x man, M-x info.

Для работы с удаленным образом есть

То есть на мобилку/планшет предлагаешь тоже его ставить? Он для Android/iOS вообще есть?

monk ★★★★★
()
Ответ на: комментарий от monk

Если «как emacs», то должен быть аналог M-x term, M-x man, M-x info.

Для собственных утилит все это есть.

То есть на мобилку/планшет предлагаешь тоже его ставить? Он для Android/iOS вообще есть?

Нет, не предлагаю. Как и на распбери пи, микроконтроллеры и аналаговые часы с кукушкой.

loz ★★★★★
()
Ответ на: комментарий от loz

Для собственных утилит все это есть.

В смысле, собственных? Запустить программу в окне терминала, прочитать man или прочитать info из него можно? В emacs всё перечисленное есть и реализовано на elisp.

monk ★★★★★
()
Ответ на: комментарий от monk

Для тех программ что идут в комплекте с фарой. А прочитать ман или инфо емакс на винде не может.

loz ★★★★★
()
Ответ на: комментарий от loz

А он как емакс, его не надо перезапускать.

У меня уже есть sbcl, который тоже не надо перезапускать. И он всё ещё остаётся в строю.

ados ★★★★★
() автор топика
Ответ на: комментарий от den73

Ну тогда srfi-88, srfi-89

Вместо

(defun foo (a &key b 1 c 3)
   (list a b c))

будет в стандартной Scheme

(define* (a (b: b 1) (c: c 3))
  (list a b c))

или в Racket:

(define (a #:b (b 1) #:c (c 3))
  (list a b c))

monk ★★★★★
()
Ответ на: комментарий от monk

Ок, инфо идет с емаксом, но в чем толк от него? Это платформозависимые утилиты, которые не имеет смысла интегрировать в платформнонезависимую среду типа фары. Может быть отдельным пакетом, если нету значит никому до сих пор не нужен был.

loz ★★★★★
()

Gambit Scheme. При желании код в Си можно транслировать и хоть для роутеров собирать бинари.

OSBuster
()
Ответ на: комментарий от loz

Ок, инфо идет с емаксом, но в чем толк от него?

Толк в том, что работу с файлами (включая скрипты sh), чтение документации, почты, ... можно действительно делать не выходя из Emacs. Что из этого можно делать в Pharo и насколько удобно?

monk ★★★★★
()
Ответ на: комментарий от ados

Конечно,

(define* (foo a (b: b 1) (c: c 3))
  (list a b c))
monk ★★★★★
()
Ответ на: комментарий от monk

Работать с файлам в Pharo можно, документацию и почту нет, для этого есть браузер. Хотя это возможно, интерфейс к гиту например есть.

Но все твои примеры это какие-то мелочи которые давно работают, в Pharo надо смотреть на продвинутые инструменты, например http://agilevisualization.com/ и https://openponk.org/

loz ★★★★★
()
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от loz

, документацию и почту нет, для этого есть браузере. ... Но все твои примеры это какие-то мелочи которые давно работают

Противоречие?

в Pharo надо смотреть на продвинутые инструменты, например http://agilevisualization.com/ и

Это типа Grpaphviz? Судя по http://agilevisualization.com/AgileVisualization/Roassal/figures/roassalCompo... не очень (пересечение надписей не отслеживает).

https://openponk.org/

А это вообще что? На сайте документация сводится «скачайте .zip и установите» и видео на котором что-то похожее на dia.

monk ★★★★★
()
Ответ на: комментарий от monk

Противоречие?

Я имею ввиду что это вещи которые и в браузере можно делать с тем же успехом.

Это типа Grpaphviz?

А это вообще что?

Ты не можешь даже видео посмотреть на главной, а делаешь вывод по какой-то одной картинке? Извини, не особо интересно тебе разжевывать все как ребеночку.

loz ★★★★★
()
Ответ на: комментарий от loz

Ты пытаешься применить привычный подход к совершенно другому миру, не надо так.

Кажется, этим занимаешься как раз ты. Но смолтокеры это хотя бы не воинствующие лисперы.

Virtuos86 ★★★★★
()
Ответ на: комментарий от loz

Ты не можешь даже видео посмотреть на главной

Так я на видео и посмотрел. Какой-то редактор диаграмм судя по нему.

monk ★★★★★
()

Из всего, что ты написал, это sbcl. :) Правда, под ответ не подходит полностью, но это, наверное, лучшее из всего.

turtle_bazon ★★★★★
()
Ответ на: комментарий от no-such-file

Это где даже тредов нет и надо форкать? И который после форка на разных компьютерах по разному работает?

turtle_bazon ★★★★★
()
Ответ на: комментарий от no-such-file

Я подробностей не помню, но помню, что после fork не на всех окружениях работает одинаково. При этом окружение как бы одинаковое - то есть одна и та же ОС, та же версия, просто разные машины. Автор сказал, что у него всё работает. Поэтому я этот picolisp и дропнул и переписал на guile.

turtle_bazon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.