next up previous contents index
Next: An example: string searching Up: Sample session Previous: Scalar operations

Vector operations

<Nesl>  [2, 5, 1, 3];

it = [2, 5, 1, 3] : [int]
<Nesl>  "this is a vector";

it = "this is a vector" : [char]
<Nesl> [(2, 3.4), (5, 8.9)];    % a vector of tuples % 

it = [(2, 3.4), (5, 8.9)] : [(int, float)]
<Nesl>  ["this", "is", "a", "nested", "vector"];

it = ["this", "is", "a", "nested", "vector"] : [[char]]
<Nesl> [2, 3.0, 4];     % vectors must have homogeneous elements %

Error at top level.  
For function make_sequence in expression
  [2, 3.0]
inferred argument types don't match function specification.
  Argument types: [int], float
  Function types: [a], a :: (a in any)

<Nesl>  {a + 1: a in [2, 3, 4]};

it = [3, 4, 5] : [int]
<Nesl>  let a = [2, 3, 4] in {a + 1: a};

it = [3, 4, 5] : [int]
<Nesl> {a + b: a in [2, 3, 4]; b in [4, 5, 6]};

it = [6, 8, 10] : [int]
<Nesl> let a = [2, 3, 4]; b = [4, 5, 6] in {a + b: a; b};

it = [6, 8, 10] : [int]
<Nesl> {a == b: a in "this"; b in "that"};

it = [T, T, F, F] : [bool]
<Nesl> {fact(a): a in [1, 2, 3, 4, 5]};

it = [1, 2, 6, 24, 120] : [int]
<Nesl> {div_rem(100, a): a in [5, 6, 7, 8]};

it = [(20, 0), (16, 4), (14, 2), (12, 4)] : [(int, int)]
<Nesl> sum([2, 3, 4]);

it = 9 : int
<Nesl> dist(5, 10);

it = [5, 5, 5, 5, 5, 5, 5, 5, 5, 5] : [int]
<Nesl> [2:50:3];

it = [2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47] : [int]
<Nesl>  "big" ++ " boy";

it = "big boy" : [char]
<Nesl> {x in "wombat" | x <= `m};

it = "mba" : [char]
<Nesl> {sum(a): a in [[2, 3, 4], [1], [7, 8, 9]]};

it = [9, 1, 24] : [int]
<Nesl> bottop("testing");  % split sequence into two parts %

it = ["test", "ing"] : [[char]]
<Nesl> partition("break into words", [5, 5, 6]);

it = ["break", " into", " words"] : [[char]]

<Nesl> function my_sum(a) =
>         if (#a == 1) then a[0]
>         else
>           let res = {my_sum(x): x in bottop(a)}
>           in res[0] + res[1];

my_sum = fn : [a] -> a :: (a in number)
<Nesl> my_sum([7, 2, 6]);

it = 15 : int



Guy Blelloch
Tue Nov 28 18:37:09 EST 1995