A templating language that looks like Lisp and compiles to HTML
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

core.js 951B

12345678910111213141516171819
  1. const AST = require('./ast')
  2. const OsloError = require('./osloError')
  3. module.exports = {
  4. '+': (a, b) => new AST.Number({ value: a.value + b.value }),
  5. '-': (a, b) => new AST.Number({ value: a.value - b.value }),
  6. '*': (a, b) => new AST.Number({ value: a.value * b.value }),
  7. '/': (a, b) => new AST.Number({ value: a.value / b.value }),
  8. '=': (a, b) => new AST.Boolean({ value: a.value === b.value }),
  9. '>': (a, b) => new AST.Boolean({ value: a.value > b.value }),
  10. '<': (a, b) => new AST.Boolean({ value: a.value < b.value }),
  11. '>=': (a, b) => new AST.Boolean({ value: a.value >= b.value }),
  12. '<=': (a, b) => new AST.Boolean({ value: a.value <= b.value }),
  13. list: (...args) => new AST.List({ elements: args }),
  14. length: xs => new AST.Number({ value: xs.elements.length }),
  15. cons: (x, xs) => new AST.List({ elements: [x, ...xs.elements] }),
  16. first: xs => xs.elements[0],
  17. rest: xs => new AST.List({ elements: xs.elements.slice(1) }),
  18. }