Явный экспорт модулей в Frege

Я публикую это после прочтения спецификации языка Frege и поиска примеров с использованием поисковых систем. . Надеюсь, я не пропустил очевидный ответ.

Я пытаюсь перенести некоторый код Haskell на Frege и не могу найти документацию, в которой упоминается явный экспорт модулей. Итак, в моем коде Haskell у меня есть что-то вроде

module common.Timer(start, ...)
where
...

но это выдаст ошибку компилятора во Фреге, и я должен убрать список экспорта:

module common.Timer
where
...

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

Можно ли определить явный экспорт модулей в Frege? Если да, то каков синтаксис?


person Giorgio    schedule 17.12.2015    source источник


Ответы (1)


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

Изменить после обсуждения: это текущее отклонение от стандарта Haskell, которое мы собираемся устранить.

person Dierk    schedule 17.12.2015
comment
Так что, вероятно, альтернативный синтаксис, который я ищу, - это пометить символы как private? - person Giorgio; 17.12.2015
comment
Да, вы можете просто отметить private то, что не следует экспортировать. Однако исходный синтаксис Haskell также должен работать. Какую версию Фреге вы используете? - person Dierk; 17.12.2015
comment
Версия 3.23.454-g8779d9e, которая устанавливается плагином Frege Eclipse. - person Giorgio; 17.12.2015
comment
Хорошо спасибо. Это одна из открытых проблем, которую мы собираемся решить для улучшения совместимости с Haskell. Это слайд номер 31 в de.slideshare.net/Митти/. Пожалуйста, не стесняйтесь сообщать о соответствующей проблеме на github, если ее еще нет. - person Dierk; 17.12.2015
comment
Спасибо за комментарий: если вы добавите эту информацию (о том, что синтаксис Haskell еще не поддерживается) в свой ответ, я могу пометить его как принятый. Кстати, у меня есть некоторый опыт работы с Haskell, и я оцениваю Frege для использования в магазине Java. - person Giorgio; 17.12.2015
comment
Также есть protected, который я рекомендую использовать, пока мы не реализуем синтаксис Haskell. Причина в том, что компилятор, вероятно, дает сбой, когда у вас есть публичная функция, имеющая в своей сигнатуре частный тип. - person Ingo; 17.12.2015
comment
Круто, Джорджио, держи нас в курсе своих успехов! - person Dierk; 17.12.2015
comment
@Дирк: Спасибо. Где я могу опубликовать? Я получил свое приложение для компиляции и запуска в Eclipse. Следующий шаг — сделать то же самое с помощью Maven. - person Giorgio; 17.12.2015
comment
Большой! Вы можете использовать форум: groups.google.com/forum/#! forum/frege-programming-language и, возможно, включить ссылку на суть или проект github. Если вы твитите, просто добавьте @fregelang, и мы будем RT. - person Dierk; 18.12.2015
comment
@Dierk: После обновления моего pom.xml для использования frege версии 3.23.422-ga05a487 я смог скомпилировать и запустить из Maven. - person Giorgio; 20.12.2015