Functional Programming
From Federal Burro of Information
Jump to navigationJump to search
notes from the field.
In general,
new_collection = collection.map(function)
is a short-cut for:
new_collection[] for (element in collection) new_collection[] += function(element)
And:
new_collection = collection.filter(function)
is a short-cut for:
new_collection[] for (element in collection): if function(element): new_collection[] += function(element)
this
doubled = [1, 2, 3, 4, 5].map(x => x * 2)
is equivalent to:
doubled[] for (x in [1, 2, 3, 4, 5]): doubled[] += x * 2
that
- Example
you want to remove all the gcp images not in use, get all the current live instance, find their template, find the image in the template and "subtract" those from the list of all images.
source_images = instance .map(i => i.get_template) .map(i => i.get_source_image) to_delete = gci.get_all() .filter(i => !source_images[i]) .filter(i => i.age > 1m) for i in to_delete: i.delete()