В проекте я использую модуль, содержащий глобальные (константные однократно инициализированные) материалы, которые я использую в остальной части проекта. Я решил разместить их в модуле, чтобы избежать большого количества аргументов. Проблема в том, что этот модуль должен быть инициализирован во время выполнения с аргументом выполнения программы.Инициализация модуля в функциональной программировании
Как это можно сделать в функциональной парадигме, например, в языке Haskell?
Edit:
Чтобы быть более точным, я закодировать свой проект в императивном языке (Ada), поэтому я могу использовать модуль, содержащий переменные инициализированы во время выполнения, а затем использовать в качестве глобальных констант (с встроенный геттер). Однако, интересуясь функциональным программированием, мне интересно, как получить тот же результат в этой парадигме; Я хочу иметь световые сигнатуры на всем протяжении кода (используя глобальную константу), данные модуля, локализованные в секции данных памяти, даже иметь возможность инициализировать разные «константы» модуля отдельно и т. Д.
хорошо вы читаете аргументы в 'main' с помощью' 'getArgs' '(https://hackage.haskell.org/package/base-4.8.2.0/docs/System-Environment.html#v:getArgs) и пропустите их - если вы хотите получить представление о том, что вы можете использовать Read/StateMonad (Transformers) и т. д. - то, что вы не можете сделать, конечно, - это использовать постоянные значения в вашем модуле - для чего-то большего вам нужно быть более конкретным, поскольку этот вопрос действительно к широкому – Carsten
Некоторые функциональные языки (но не Haskell) предлагают первоклассные модули, которые можно инициализировать с помощью динамических привязок. – dfeuer
@ Карстен Вы были правы, я редактировал свой пост, чтобы иметь более конкретный вопрос. – olp