Я хочу ответить this question с помощью метапрограммирования, но правила определения объема для петель вызывают мои переменные не могут быть определены в самой верхней (REPL) Область применения:Объявление переменных верхнего уровня в Джулию, используя метапрограммирование
for x = [:A1, :A2]
@eval x = rand(2,2)
end
Я знаю, что есть, вероятно, простой способ обойти это, но мой мозг в пятницу ночью не может думать об одном. Может ли один из вас метапрограммировать наркоманов помочь мне найти сжатое решение? (Я понимаю, что макрос может работать с побега, но я стараюсь думать о чем-то более короткой)
Я тоже видел это и задавался вопросом, как вы метапрограммируете его, если у вас есть сотня А. 'для x = 1: 100', а затем что? Как можно программировать имена переменных? – rickhg12hs
Отвечал на собственный комментарий/вопрос. 'для k = 1: 10 my_sym = символ (« A »* string (k)); @eval $ my_sym = rand (2,2) end' (показано здесь, генерируя от A1 до A10.) – rickhg12hs