Теперь, если можно отсортировать на значениях атрибута, это может быть сделано:
class A
attr_accessor :val
def initialize(v); self.val = v; end
end
objs = [1,2,6,3,7,7,8,2,8].map{|i| A.new(i)}
objs.sort_by{|a| a.val}.inject([]) do |uniqs, a|
uniqs << a if uniqs.empty? || a.val != uniqs.last.val
uniqs
end
Это для уникального 1 атрибута, но то же самое может быть сделано w/лексикографический вид...
Щелкните правой кнопкой мыши файл C верхнего уровня. Вариант есть.
+ 1 за вопрос о программировании оборудования. SO нужно их больше.
Я почти уверен, что это уже делалось раньше, но вам придется встроить в свой контроллер возможность перезаписывать ПЗУ, в котором хранится программа c. Если вы специально укажете программисту, где разместить ПЗУ с программой, некоторые устройства могут предложить возможность записи в определенные разделы выделенной памяти без перенастройки всего fpga. Я не знаю, делает ли это виртекс.