Mercurial > hg > ishara
annotate general/map_fields.m @ 44:3cedfd4549ef
Code added since initial check in.
author | samer |
---|---|
date | Tue, 13 Jan 2015 14:03:17 +0000 |
parents | |
children |
rev | line source |
---|---|
samer@44 | 1 % map_fields - Apply function to all member fields of structure |
samer@44 | 2 % |
samer@44 | 3 % map_fields :: |
samer@44 | 4 % (A->B) ~'function from As to Bs', |
samer@44 | 5 % struct(fields(N,A)) |
samer@44 | 6 % -> struct(fields(N,B)). |
samer@44 | 7 % |
samer@44 | 8 % fields(N,A) denotes a list of struct field type declarates with |
samer@44 | 9 % names from list N and types all equal to A, eg |
samer@44 | 10 % fields({'a','b','c'},real) == {a::real, b::real, c::real}. |
samer@44 | 11 |
samer@44 | 12 function y=map_fields(fn,x) |
samer@44 | 13 y=foldl(@(s,f)setfield(s,f,fn(s.(f))),x,fields(x)); |