История изменений
Исправление alysnix, (текущая версия) :
Только я всё равно не понимаю, почему минимальной единицей трансляции является именно модуль, а не функция, особенно когда я показал тебе пример обратного.
потому что так устроен нормальный модульный язык, а таким референсным языком является модула-2. что даже видно их названия, а еще лучше - из его описания.
просто функция не может быть (в общем случае) единицей компиляции, уже потому, что в общем случае не может быть скомпилирована без окружения в котором она находится.
вы не можете просто выделить кусок текста в файле и сказать компилятору - скомпилируй вот это и сделай их этого обьектник.
потому, что если там есть вызовы других функций - надо знать их сигнатуры. если обращения к переменным - знать их типы. если есть типы - знать их декларации. то есть вы должны создать файл с импортом или инклудом всего этого, положить туда свою функцию, - то есть сделать единицу компиляции, и только потом компилятор это прожует.
что там за чудесатый хаскель, что может прям взять функцию, и без контекста из нее код сделать - не знаю. видимо он общается с космосом.
Исходная версия alysnix, :
Только я всё равно не понимаю, почему минимальной единицей трансляции является именно модуль, а не функция, особенно когда я показал тебе пример обратного.
потому что так устроен нормальный модульный язык, а таким референсным языком является модула-2. что даже видно их названия, а еще лучше - из его описания.
просто функция не может быть (в общем случае) единицей компиляции, просто потому, что в общем случае не может быть скомпилирована без окружения в котором она находится.
вы не можете просто выделить кусок текста в файле и сказать компилятору - скомпилируй вот это и сделай их этого обьектник.
потому, что если там есть вызовы других функций - надо знать их сигнатуры. если обращения к переменным - знать их типы. если есть типы - знать их декларации. то есть вы должны создать файл с импортом и инклудом всего этого, положить туда свою функцию, - то есть сделать единицу компиляции, и только потом компилятор это прожует.
что там за чудесатый хаскель, что может прям взять функцию, и без контекста из нее код сделать - не знаю. видимо он общается с космосом.