Packages

c

be.opimedia.scala_par_am

SchemePrimitives

class SchemePrimitives[Addr, Abs] extends Primitives[Addr, Abs]

This is where we define Scheme primitives

Linear Supertypes
Primitives[Addr, Abs], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SchemePrimitives
  2. Primitives
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SchemePrimitives()(implicit arg0: Address[Addr], arg1: IsSchemeLattice[Abs])

Type Members

  1. abstract class AssocLike extends StoreOperation
  2. class CarCdrOperation extends StoreOperation
  3. abstract class MemberLike extends StoreOperation

    (define (member e l) ; member, memq and memv are similar, the difference lies in the comparison function used (if (null? l) #f (if (equal? (car l) e) l (member e (cdr l)))))

  4. abstract class NoStoreOperation extends Primitive[Addr, Abs]
  5. abstract class StoreOperation extends Primitive[Addr, Abs]

Value Members

  1. val abs: IsSchemeLattice[Abs]
  2. def acos: (Abs) ⇒ MayFail[Abs]
  3. def all: List[Primitive[Addr, Abs]]

    Bundles all the primitives together, annotated with R5RS support (v: supported, vv: supported and tested in PrimitiveTests, vx: not fully supported, x: not supported), and section in Guile manual

    Bundles all the primitives together, annotated with R5RS support (v: supported, vv: supported and tested in PrimitiveTests, vx: not fully supported, x: not supported), and section in Guile manual

    Definition Classes
    SchemePrimitivesPrimitives
  4. def asin: (Abs) ⇒ MayFail[Abs]
  5. def atan: (Abs) ⇒ MayFail[Abs]
  6. lazy val bindings: List[(String, Addr, Abs)]
    Definition Classes
    Primitives
  7. def ceiling: (Abs) ⇒ MayFail[Abs]
  8. def cos: (Abs) ⇒ MayFail[Abs]
  9. def div: (Abs, Abs) ⇒ MayFail[Abs]
  10. def eqq: (Abs, Abs) ⇒ MayFail[Abs]
  11. def err(e: SemanticError): MayFail[(Abs, Set[Effect[Addr]])]
  12. def exactToInexact: (Abs) ⇒ MayFail[Abs]
  13. def floor: (Abs) ⇒ MayFail[Abs]
  14. def inexactToExact: (Abs) ⇒ MayFail[Abs]
  15. def isBoolean: (Abs) ⇒ MayFail[Abs]
  16. def isChar: (Abs) ⇒ MayFail[Abs]
  17. def isCons: (Abs) ⇒ MayFail[Abs]
  18. def isInteger: (Abs) ⇒ MayFail[Abs]
  19. def isNull: (Abs) ⇒ MayFail[Abs]
  20. def isReal: (Abs) ⇒ MayFail[Abs]
  21. def isString: (Abs) ⇒ MayFail[Abs]
  22. def isSymbol: (Abs) ⇒ MayFail[Abs]
  23. def isVector: (Abs) ⇒ MayFail[Abs]
  24. def log: (Abs) ⇒ MayFail[Abs]
  25. def lt: (Abs, Abs) ⇒ MayFail[Abs]
  26. val mfmon: Monoid[MayFail[(Abs, Set[Effect[Addr]])]]
  27. def minus: (Abs, Abs) ⇒ MayFail[Abs]
  28. def modulo: (Abs, Abs) ⇒ MayFail[Abs]
  29. def not: (Abs) ⇒ MayFail[Abs]
  30. def numEq: (Abs, Abs) ⇒ MayFail[Abs]
  31. def numberToString: (Abs) ⇒ MayFail[Abs]
  32. def plus: (Abs, Abs) ⇒ MayFail[Abs]
  33. def quotient: (Abs, Abs) ⇒ MayFail[Abs]
  34. def random: (Abs) ⇒ MayFail[Abs]
  35. def remainder: (Abs, Abs) ⇒ MayFail[Abs]
  36. def round: (Abs) ⇒ MayFail[Abs]
  37. def sin: (Abs) ⇒ MayFail[Abs]
  38. def sqrt: (Abs) ⇒ MayFail[Abs]
  39. def stringAppend: (Abs, Abs) ⇒ MayFail[Abs]
  40. def stringLength: (Abs) ⇒ MayFail[Abs]
  41. def stringLt: (Abs, Abs) ⇒ MayFail[Abs]
  42. def stringToSymbol: (Abs) ⇒ MayFail[Abs]
  43. def success(v: Abs): MayFail[(Abs, Set[Effect[Addr]])]
  44. def symbolToString: (Abs) ⇒ MayFail[Abs]
  45. def tan: (Abs) ⇒ MayFail[Abs]
  46. def times: (Abs, Abs) ⇒ MayFail[Abs]
  47. def toVal(prim: Primitive[Addr, Abs]): Abs
    Definition Classes
    SchemePrimitivesPrimitives
  48. def traced(prim: Primitive[Addr, Abs]): Primitive[Addr, Abs]

    Modify a primitive to trace it: output will be printed when the primitive is called.

    Modify a primitive to trace it: output will be printed when the primitive is called. This is for debugging purposes.

    Definition Classes
    Primitives
  49. def vectorLength: (Abs) ⇒ MayFail[Abs]
  50. object ACos extends NoStoreOperation
  51. object ASin extends NoStoreOperation
  52. object ATan extends NoStoreOperation
  53. object Abs extends NoStoreOperation

    (define (abs x) (if (< x 0) (- 0 x) x))

  54. object Assoc extends AssocLike
  55. object Assq extends AssocLike
  56. object BoolTop extends NoStoreOperation
  57. object Booleanp extends NoStoreOperation
  58. object Caaaar extends CarCdrOperation
  59. object Caaadr extends CarCdrOperation
  60. object Caaar extends CarCdrOperation
  61. object Caadar extends CarCdrOperation
  62. object Caaddr extends CarCdrOperation
  63. object Caadr extends CarCdrOperation
  64. object Caar extends CarCdrOperation
  65. object Cadaar extends CarCdrOperation
  66. object Cadadr extends CarCdrOperation
  67. object Cadar extends CarCdrOperation
  68. object Caddar extends CarCdrOperation
  69. object Cadddr extends CarCdrOperation
  70. object Caddr extends CarCdrOperation
  71. object Cadr extends CarCdrOperation
  72. object Car extends CarCdrOperation
  73. object Cdaaar extends CarCdrOperation
  74. object Cdaadr extends CarCdrOperation
  75. object Cdaar extends CarCdrOperation
  76. object Cdadar extends CarCdrOperation
  77. object Cdaddr extends CarCdrOperation
  78. object Cdadr extends CarCdrOperation
  79. object Cdar extends CarCdrOperation
  80. object Cddaar extends CarCdrOperation
  81. object Cddadr extends CarCdrOperation
  82. object Cddar extends CarCdrOperation
  83. object Cdddar extends CarCdrOperation
  84. object Cddddr extends CarCdrOperation
  85. object Cdddr extends CarCdrOperation
  86. object Cddr extends CarCdrOperation
  87. object Cdr extends CarCdrOperation
  88. object Ceiling extends NoStoreOperation
  89. object Charp extends NoStoreOperation
  90. object Cons extends Primitive[Addr, Abs]
  91. object Cos extends NoStoreOperation
  92. object Display extends NoStoreOperation
  93. object Div extends NoStoreOperation
  94. object Eq extends NoStoreOperation
  95. object Equal extends StoreOperation

    (define (equal? a b) (or (eq? a b) (and (null? a) (null? b)) (and (pair? a) (pair? b) (equal? (car a) (car b)) (equal? (cdr a) (cdr b))) (and (vector? a) (vector? b) (let ((n (vector-length a))) (and (= (vector-length b) n) (letrec ((loop (lambda (i) (or (= i n) (and (equal? (vector-ref a i) (vector-ref b i)) (loop (+ i 1))))))) (loop 0)))))))

  96. object Error extends NoStoreOperation
  97. object Evenp extends NoStoreOperation

    (define (even? x) (= 0 (modulo x 2)))

  98. object ExactToInexact extends NoStoreOperation
  99. object Expt extends NoStoreOperation
  100. object Floor extends NoStoreOperation
  101. object Gcd extends NoStoreOperation

    (define (gcd a b) (if (= b 0) a (gcd b (modulo a b))))

  102. object GreaterOrEqual extends NoStoreOperation
  103. object GreaterThan extends NoStoreOperation
  104. object InexactToExact extends NoStoreOperation
  105. object IntTop extends NoStoreOperation
  106. object Integerp extends NoStoreOperation
  107. object Length extends StoreOperation
  108. object LessOrEqual extends NoStoreOperation
  109. object LessThan extends NoStoreOperation
  110. object ListPrim extends StoreOperation
  111. object ListRef extends StoreOperation

    (define (list-ref l index) (if (pair? l) (if (= index 0) (car l) (list-ref (cdr l) (- index 1))) (error "list-ref applied to a non-list")))

  112. object Listp extends StoreOperation

    (define (list? l) (or (and (pair? l) (list? (cdr l))) (null? l)))

  113. object Log extends NoStoreOperation
  114. object MakeVector extends Primitive[Addr, Abs]
  115. object Max extends NoStoreOperation
  116. object Member extends MemberLike
  117. object Memq extends MemberLike
  118. object Min extends NoStoreOperation
  119. object Minus extends NoStoreOperation
  120. object Modulo extends NoStoreOperation
  121. object Negativep extends NoStoreOperation

    (define (positive? x) (< 0 x))

  122. object Newline extends NoStoreOperation
  123. object Not extends NoStoreOperation
  124. object Nullp extends NoStoreOperation
  125. object NumEq extends NoStoreOperation
  126. object NumberToString extends NoStoreOperation
  127. object Numberp extends NoStoreOperation
  128. object Oddp extends NoStoreOperation

    (define (odd? x) (= 1 (modulo x 2)))

  129. object Pairp extends NoStoreOperation
  130. object Plus extends NoStoreOperation
  131. object Positivep extends NoStoreOperation

    (define (positive? x) (< x 0))

  132. object Quotient extends NoStoreOperation
  133. object Random extends NoStoreOperation
  134. object Realp extends NoStoreOperation
  135. object Remainder extends NoStoreOperation
  136. object Round extends NoStoreOperation
  137. object SetCar extends StoreOperation
  138. object SetCdr extends StoreOperation
  139. object Sin extends NoStoreOperation
  140. object Sqrt extends NoStoreOperation
  141. object StringAppend extends NoStoreOperation
  142. object StringLength extends NoStoreOperation
  143. object StringLt extends NoStoreOperation
  144. object StringToSymbol extends NoStoreOperation
  145. object Stringp extends NoStoreOperation
  146. object SymbolToString extends NoStoreOperation
  147. object Symbolp extends NoStoreOperation
  148. object Tan extends NoStoreOperation
  149. object Times extends NoStoreOperation
  150. object Vector extends Primitive[Addr, Abs]
  151. object VectorLength extends StoreOperation
  152. object VectorRef extends StoreOperation
  153. object VectorSet extends Primitive[Addr, Abs]
  154. object Vectorp extends NoStoreOperation
  155. object Zerop extends NoStoreOperation

    (define (zero? x) (= x 0))