view src/kernel.tp @ 280:23b52d2d05a0

Don't try to replace self in a macro expansion since it's unlikely to be the desired behavior. A more explicit means of specifying what variables should be replaced in a quote expression is needed.
author Michael Pavone <pavone@retrodev.com>
date Mon, 21 Jul 2014 19:30:23 -0700
parents 96e21f525b78
children
line wrap: on
line source

/*
array <- #{
	new <- {
		length <- 0
		#{
			each <- :fun {
				repeat: length :idx {
					fun: idx (get: idx)
				}
			}
		}
	}
}
*/

true <- #{
  if:else <- :self trueblock :elseblock {
    trueblock:
  }
}

false <- #{
  if:else <- :self trueblock :elseblock {
    elseblock:
  }
}

filter <- :arr pred {
	output <- arr slice: 0 0
	each: arr :idx el {
		if: (pred: el) {
			output push: el
		} else: {}
	}
	output
}