Просто хотел добавить некоторые ресурсы для Functional.js:
Лекция / конференция, объясняющая некоторые приложения http://www.youtube.com/watch?v=HAcN3JyQoyY
Обновлена библиотека Functional.js: https://github.com/loop-recur/FunctionalJS Некоторые приятные помощники (извините, новый здесь, без репутации: p): / loop-recur / PreludeJS
Я недавно использовал эту библиотеку, чтобы уменьшить повторение в библиотеке помощников js IRC-клиентов. Это замечательный материал - действительно помогает очистить и упростить код.
Кроме того, если производительность становится проблемой (но эта библиотека довольно легкая), ее можно просто переписать с помощью встроенной функции.
Он не входит в подпрограмму sub, поскольку sub не может вызывать подпрограммы или использовать переменные из mod, потому что sub
не является частью программы main
.
Рассмотрим это:
program main
external sub
call sub
end program main
subroutine sub
use mod
! code here calls subroutines in mod
end subroutine sub
Здесь вы можете использовать переменные и mod
, потому что sub
явно использует mod
.
Другой пример, где sub
является внутренней процедурой main
:
program main
use mod
call sub
contains
subroutine sub
! code here calls subroutines in mod
end subroutine sub
end program main
Также в этом случае вы можете использовать вещи из mod
в sub
, потому что все из main
находится в области видимости в sub
.
Наконец, в этом случае mod
не используется по объему, он похож на исходный случай.
program main
use mod
use mod2
call sub
end program main
module mod2
contains
subroutine sub
! code here calls subroutines in mod
end subroutine sub
end module mod2
Другая проблема - это неопределение переменных модуля, когда они выходят за рамки. Fortran 2008 решил это, сделав все модульные переменные неявно save
.