2015-11-25 2 views
2

ОК, я думаю, что это глупый вопрос начинающих:Как выполнить скомпилированный код надрезается в Фреге онлайн РЕПЛИ

Я пытаюсь научиться Фреге через интернет РЕПЛ. Для этого, хотя было бы неплохо вставить примеры кода из Dierk's Real World Frege в верхнее правое окно repl, нажать компиляцию и ...? Как начать этот код?

ответ

1

Я предполагаю, что я отчасти нашел ответ сам:

:java команды в командной строке показывает сгенерированный код. Внутри этого кода видно, что скомпилированный модуль автоматически импортируется, поэтому нам не нужно ссылаться на него.

Теперь, если мы возьмем пример HelloWorld из РЕПЛ, он просто выполняется путем ввода

frege> main 

в левое окно.

Дирк использует для своих примеров с синтаксисом

main _ = do 

Если мы теперь типа

frege> main 

мы только получаем

:: a -> IO() 

как выход. Но если мы наберем

frege> main "something" 

repl дает ожидаемый результат. Хотя я до сих пор не знаю, что происходит, это помогает мне с моими следующими шагами :-)

+1

Действительно! Для совместимости с Java «main» может быть объявлен как «[String] -> IO()», и для совместимости с Haskell это может быть просто «IO()». В зависимости от того, что вы называете основным. – Ingo

+1

Чтобы избежать путаницы, соблюдайте следующее: 1.) Используйте разные имена модулей каждый раз или используйте команду ': reset', чтобы очистить старые файлы. 2.) Не используйте имена неквалифицированных модулей, с ними могут возникнуть некоторые проблемы (из-за ограничений JVM). – Ingo

+1

У вас это абсолютно правильно. Модули и определения загружаются автоматически в REPL слева (на самом деле оба они используют один и тот же сеанс). Кнопка «Запустить» определенно упростит работу модулей. –