(Language: D) Filtering an iterable

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]

  1. import tango.io.Stdout;
  2.  
  3. T[] filter (alias dg, T) (T[] list) {
  4.  
  5. T[] result;
  6.  
  7. foreach (T item; list) {
  8.  
  9. if (dg(item)) {
  10.  
  11. result ~= item;
  12.  
  13. }
  14.  
  15. }
  16.  
  17. return result;
  18.  
  19. }
  20.  
  21. void main () {
  22.  
  23. int[] list = [1,2,3,4,5,6,7,8,9,10];
  24. int[] result = filter!((int a) {
  25. return a % 2 == 0;
  26. })(list);
  27.  
  28. foreach (int item; result) {
  29.  
  30. Stdout(item).newline();
  31.  
  32. }
  33.  
  34. }

(Language: C) Swapping case

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]

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void swap_case (char* value) {
  5.  
  6. int i, len;
  7.  
  8. for (i = 0, len = strlen(value); i < len; i++) {
  9.  
  10. if (*(&value[i]) >= 97 && *(&value[i]) <= 122) {
  11.  
  12. *(&value[i]) -= 32;
  13.  
  14. } else if (*(&value[i]) >= 65 && *(&value[i]) <= 90) {
  15.  
  16. *(&value[i]) += 32;
  17.  
  18. }
  19.  
  20. }
  21.  
  22. }
  23.  
  24. int main (int argc, char** argv) {
  25.  
  26. char* data = (char*) strdup("A Simple Case Swap Example");
  27.  
  28. printf("%s\n", data);
  29.  
  30. swap_case(data);
  31.  
  32. printf("%s\n", data);
  33.  
  34. return 0;
  35.  
  36. }