samer@44: % map_fields - Apply function to all member fields of structure samer@44: % samer@44: % map_fields :: samer@44: % (A->B) ~'function from As to Bs', samer@44: % struct(fields(N,A)) samer@44: % -> struct(fields(N,B)). samer@44: % samer@44: % fields(N,A) denotes a list of struct field type declarates with samer@44: % names from list N and types all equal to A, eg samer@44: % fields({'a','b','c'},real) == {a::real, b::real, c::real}. samer@44: samer@44: function y=map_fields(fn,x) samer@44: y=foldl(@(s,f)setfield(s,f,fn(s.(f))),x,fields(x));