Writing a basic filtering function template is really simple to do in D. This is akin to a Python's filter() function and will work on anything iterable.
[Source Code]
import tango.io.Stdout; T[] filter (alias dg, T) (T[] list) { T[] result; foreach (T item; list) { if (dg(item)) { result ~= item; } } return result; } void main () { int[] list = [1,2,3,4,5,6,7,8,9,10]; int[] result = filter!((int a) { return a % 2 == 0; })(list); foreach (int item; result) { Stdout(item).newline(); } }
A very simple example of how to swap character case in an ASCII string. Do not try this on a multi-byte string or you will end up with something possibly resembling goo.
[Source Code]
#include <stdio.h> #include <string.h> void swap_case (char* value) { int i, len; for (i = 0, len = strlen(value); i < len; i++) { if (*(&value[i]) >= 97 && *(&value[i]) <= 122) { *(&value[i]) -= 32; } else if (*(&value[i]) >= 65 && *(&value[i]) <= 90) { *(&value[i]) += 32; } } } int main (int argc, char** argv) { char* data = (char*) strdup("A Simple Case Swap Example"); printf("%s\n", data); swap_case(data); printf("%s\n", data); return 0; }