Это командные объятия, которые можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
hugs, runhugs, ffihugs - Hugs 98, система функционального программирования
СИНТАКСИС
обнимает [ кредита ] [ модули ]
бегуны [ кредита ] модуль [ арг ]
обнимашки [ кредита ] модуль [ аргумент_компилятора ] ...
ОПИСАНИЕ
Hugs - это интерпретатор Haskell, стандартного нестрогого функционального языка программирования.
Hugs реализует почти весь стандарт Haskell 98, за исключением взаимно рекурсивного
модули. Имя Объятия это мнемоника для Haskell Пользователя Гофер Система.
Интерпретатор запускается с помощью обнимает команда. После обработки параметров он загружает
стандартный модуль Вступление и любые другие модули, перечисленные в командной строке.
Каждый модуль Haskell хранится в отдельном файле. При загрузке модуля имя, Объятия
заменяет каждый `.' в имя с `/'и просматривает каждый из каталогов в поиске
путь (см. -P недооценивают ее ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ) для файлов имя.hs и имя.lhs. (Признанные суффиксы
можно изменить с помощью -S вариант, описанный в ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ.) Он тоже пытается имя как
буквальное имя файла. Файлы, оканчивающиеся на ".lhs"рассматриваются как грамотные сценарии.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Некоторые параметры переключаются с помощью + or - чтобы включить или выключить их соответственно.
Язык соответствие
+98 Принимать только Haskell 98 (нельзя изменить в Объятия; по умолчанию: включено). Превращая это
off включает несколько специальных расширений Hugs, которые описаны в Объятия 98
Информация о пользователе Ручная.
+o Разрешить перекрывающиеся экземпляры (расширение Hugs; по умолчанию: выключено)
+O Разрешить небезопасные перекрывающиеся экземпляры (расширение Hugs; по умолчанию: выключено)
+H Разрешить `здесь документы '(расширение Hugs; по умолчанию: выключено)
Модули погрузка
+l Обрабатывать файлы, имена которых не заканчиваются на `.hs'ни'.lhs'как грамотные сценарии
(по умолчанию: выключено)
+. Печать точек для отображения прогресса при загрузке модулей (по умолчанию: выключено)
+q Ничего не печатать, чтобы показать прогресс при загрузке модулей (по умолчанию: включено)
+w Всегда показывать, какие файлы загружены (по умолчанию: выключено)
Выражение оценка
+s Печатать количество сокращений / ячеек после каждой оценки (по умолчанию: выключено)
+t Тип печати после каждой оценки (по умолчанию: выключено)
+T Примените правила Haskell по умолчанию перед печатью типов (по умолчанию: выключено)
+g Печатать количество ячеек, восстановленных после каждой сборки мусора (по умолчанию: выключено)
+Q Укажите имена при печати (по умолчанию: выключено)
+k Полностью отображать типовые ошибки (по умолчанию: выключено)
+u Используйте "по оценкам, "для отображения результатов (по умолчанию: включено)
+I Отображение результатов программ ввода-вывода (по умолчанию: выключено)
Параметры
Другие варианты (в которых - может быть заменено +, выбор не имеет значения):
-hNum Установить размер кучи (не может быть изменен в пределах Объятия; по умолчанию: 250 КБ)
-pул Установить строку приглашения на ул (по умолчанию: `% s> '). Любой %s в подсказке будет заменено
по текущему имени модуля.
-rул Установить повторение последней строки выражения на ул (дефолт: $$).
-Pул Установите путь поиска для исходных файлов на ул, который должен быть списком разделенных двоеточиями
каталоги. Пустая запись в этом списке будет заменена предыдущим поиском
дорожка; нуль ул означает путь по умолчанию. Любое появление {Обнимает} в этой строке
расширяется до каталога библиотеки Hugs, а именно / usr / lib / объятия, По аналогии, {Дом}
расширяется до вашего домашнего каталога (значение Главная переменная окружения).
Запись формы `каталог/*'означает все непосредственные подкаталоги
каталог. Значение по умолчанию -
.: {Home} / lib / hugs / packages / *: / usr / local / lib / hugs / packages / *: {Hugs} / packages / *: {Hugs} / библиотеки
-Sул Задайте для списка суффиксов исходного файла, разделенного двоеточиями, значение ул (дефолт: .hs: .lhs).
пустая запись в этом списке будет заменена предыдущим списком суффиксов; нуль ул
означает список по умолчанию.
-Eул Использовать настройки редактора, предоставленные ул (по умолчанию: значение РЕДАКТОР охрана окружающей среды
Переменная). Любые случаи %d и %s в редакторе заменены на
номер начальной строки и имя редактируемого файла соответственно. Обычный
настройка "vi +% d %s".
-cNum Установите ограничение ограничения в средстве проверки типов на Num (по умолчанию: 40).
-FCMD Установите фильтр препроцессора для исходных файлов на CMD (по умолчанию не установлено). Вместо того
чтение исходного файла напрямую, Объятия будет читать стандартный вывод CMD бежать с
имя исходного файла в качестве аргумента.
-Xул Строка ул интерпретируется как строка параметра. Это полезно, например,
для передачи нескольких аргументов в бегуны в #! скрипты.
КОМАНДЫ
После загрузки интерпретатора доступны следующие команды:
:нагрузка [модули] очистить все модули, кроме прелюдии, и загрузить указанные модули.
:также модули читать дополнительные модули.
: перезагрузить повторить последний загрузка команда.
редактирование: файл отредактировать файл.
редактирование: редактировать последний файл.
: модуль модуль модуль set для вычисления выражений.
выраж оценить выражение.
:тип выраж печатный тип выражения.
:? отобразить этот список команд.
:установленный кредита установить параметры командной строки.
:установленный справка по параметрам командной строки.
: имена [паттеранами] список имен, находящихся в настоящее время в области видимости, соответствующих любому из шаблонов в стиле оболочки.
:Информация имена описывать именованные объекты.
:просматривать модули просматривать имена, экспортированные модули.
:найти имя редактировать файл, содержащий определение имя.
:!команду побег из снаряда.
:CD директория сменить каталог.
: gc принудительный сбор мусора.
:версия Версия для печати Hugs.
: уволиться Выйти из объятий переводчика.
Любая команда может быть сокращена до :c в котором c - это первый символ полного имени. На
из большинства систем вы также можете выйти из Объятия путем ввода символа конца файла (^ D).
Обратите внимание, что клавишу прерывания (^ C в большинстве систем) можно использовать в любое время при использовании
Объятия отказаться от процесса чтения в файле определений функций или
оценка выражения. При обнаружении прерывания Объятия печатает строку
"{Прервано!}"и напечатает приглашение, чтобы можно было вводить дальнейшие команды.
АВТОНОМНЫЙ ПРОГРАММЫ
The бегуны команда - это интерпретатор исполняемого сценария Hugs, который должен содержать
Haskell Главная модуль. Например, исполняемый файл Здравствуйте может содержать строки
#! / usr / bin / runhugs +l
> модуль Главная в котором
> main = putStr "Здравствуйте, Мир \ n "
Когда этот файл выполняется, бегуны вызовет main функция. Любые аргументы, приведенные на
командная строка будет доступна через getArgs.
Обратите внимание, что #! передает скрипту только один объект. В -X опция может быть использована для получения
вокруг этого.
C ИНТЕРФЕЙС
На архитектурах, поддерживающих динамическое связывание, Объятия реализует часть Haskell 98
Иностранный Функция Интерфейс (FFI), который позволяет функциям Haskell вызывать подпрограммы C. (На
архитектуры x86, PowerPC и Sparc, все иностранный Импортироватьs поддерживаются; на других,
Важно статический предоставляется импорт.) Модули, содержащие такие иностранный декларации должны быть
скомпилирован с использованием обнимашки команда перед использованием с обнимает. Дополнительные аргументы в пользу C
компилятор может быть предоставлен через аргумент_компиляторас. Например, предположим, что у вас есть C
функций в тест.с и некоторые декларации FFI для этих функций в Test.hs и код
in тест.с должен быть скомпилирован с -лм. Затем вы скомпилируете модуль с
команду
обнимашки Test.hs тест.с -лм
который генерирует объектный файл Тест.соИ когда обнимает грузы Test.hs, он также загрузит
Тест.со.
В стандартном FFI каждый иностранный Импортировать объявление должно называть файл заголовка C
содержащий прототип функции. Поскольку это часто бывает громоздко, обнимашки
предоставляет следующие дополнительные возможности:
-iул Укажите включение для сгенерированного файла C. Строка включения должна быть
что-то, что может последовать "#включают"в программе на C, как в
обнимашки '-я ' '-i "mydefs.h"' Test.hs тест.с -лм
ОКРУЖАЮЩАЯ СРЕДА
ОБЪЯТИЯ ФЛАГИ
Дополнительные возможности для обнимает, обрабатывается перед любым заданным в командной строке.
ХУГСДИР
Каталог библиотеки Hugs (по умолчанию: / usr / lib / объятия).
РЕДАКТОР Редактор по умолчанию, если -E не дано.
SHELL Используется для указания оболочки, вызываемой :! команда.
Используйте объятия онлайн с помощью сервисов onworks.net