swap.sf 363 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Generic_swap#Sidef
  4. #
  5. func swap_1(Ref a, Ref b) {
  6. var tmp = *a;
  7. *a = *b;
  8. *b = tmp;
  9. }
  10. func swap_2(Ref a, Ref b) {
  11. (*a, *b) = (*b, *a);
  12. }
  13. var (a, b) = ([1], [2]);
  14. swap_1(\a, \b);
  15. assert_eq(a, [2]);
  16. assert_eq(b, [1]);
  17. swap_2(\b, \a);
  18. assert_eq(a, [1]);
  19. assert_eq(b, [2]);
  20. say "** Test passed!";