Blame view

BRIC/cspFiles/sequence_aux.csp 1.08 KB
eeb5cac08   Madiel de Souza Conserva Filho   first
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  --------------------------------------------------------------------
  --------------------------------------------------------------------
  -- Sequence auxiliary operations
  --------------------------------------------------------------------
  --------------------------------------------------------------------
  -- Overriding
  insert(<>,i,x) = <>
  insert(<y>^s,n,x) = if (n==1) then <x>^s else <y>^insert(s,n-1,x)
  
  --------------------------------------------------------------------
  -- Indexing
  at(<x>^s,n) = if (n==1) then x else at(s,n-1)
  
  --------------------------------------------------------------------
  -- Sequence of 0s
  zeroSeq(n) = if (n==1) then <0> else <0>^zeroSeq(n-1)
  --------------------------------------------------------------------
  
  map(f,<>) = <>
  map(f,<x>^xs) = <f(x)>^(map(f,xs))
  
  e2l(x) = <x>
  
  addHead(e,<>) = <>
  addHead(e,<x>^xs) = <<e>^x>^(addHead(e,xs))
  
  seqCons(<>,xxs) = <>
  seqCons(<x>^xs,xss) = (addHead(x,xss))^(seqCons(xs,xss))  
  
  distCartProd(<>) = <>
  distCartProd(<xs>) = map(e2l,xs)
  distCartProd(<xs>^xxs) = seqCons(xs, distCartProd(xxs))