// $Id: lists.ici,v 1.0 2003/01/03 12:20:00 dada Exp $ // http://dada.perl.it/shootout // // contributed by Tim Long NUM = argv[1] ? int(argv[1]) : 1; static SIZE = 10000; static test_lists() { li1 = array(); for (i := 0; i < SIZE; ) i = li1[i] = i + 1; li2 = copy(li1); li3 = array(); while(nels(li2)) push(li3, rpop(li2)); while (nels(li3)) push(li2, pop(li3)); n := SIZE / 2; for (i := 0; i < n; ++i) li1[i] <=> li1[SIZE - i - 1]; if (li1[0] != SIZE || li1 != li2) return 0; return nels(li1); } for (i = 0; i < NUM; ++i) result = test_lists(); printf("%d\n", result);