// concat.oad - test concatentation operator using namespace oadl; proc main() { var a, b; "Scalar ## scalar\n"; a = 1.0; b = 2.0; "", a ## b, '\n'; "Array ## array\n"; a = [3,4,5].iterate(); b = [4,5].iterate() + 3*4*5; "", a ## b, '\n'; "Array ## scalar (same type)\n"; a = [1,2,3]; b = 4; "", a ## b, '\n'; "Scalar ## array (same type)\n"; a = 1; b = [2,3,4]; "", a ## b, '\n'; "Array ## scalar (with promote)\n"; a = [1,2,3]; b = 4.0; "", a ## b, '\n'; "Scalar ## array (with promote)\n"; a = 1.0; b = [2,3,4]; "", a ## b, '\n'; "Array ## scalar (with convert-to-list)\n"; a = [1,2,3]; b = `+; "", a ## b, '\n'; "Scalar ## array (with convert-to-list)\n"; a = `+; b = [2,3,4]; "", a ## b, '\n'; "Array ## list\n"; a = [1,2,3]; b = {true, 5.0, 6}; "", a ## b, '\n'; "2d array + 1d array\n"; a = [3,4].iterate(); b = 4->iterate(); "", a ## b, "\n\n"; "", b ## a, '\n'; }