Подсунул мне недавно один человек задачку, которая заключалась в том, что нужно было “от балды” сгенерировать “хороший” пароль. Пришлось показать всю силу Icon…
… и написать несложную программку для такой пустяковой, казалось бы, задачи, самой сложной частью которой была переинициализация генератора случайных чисел.
В итоге получилось это:
procedure main(argv)
local a,i,pass
a:=&letters++&digits
pass:=""
every i:=1 to argv do {
pass||:=a[?(*a)]
}
write(pass)
end