Skip to content

Instantly share code, notes, and snippets.

@frenchy64
Created September 9, 2011 08:13
Show Gist options
  • Select an option

  • Save frenchy64/1205740 to your computer and use it in GitHub Desktop.

Select an option

Save frenchy64/1205740 to your computer and use it in GitHub Desktop.
;; Enumerate 20 possible signatures of the function "int"
;; such that (int x) gives a Number and x is Number
logic-introduction.polymorphism=> (run 20 [q]
(expression-check
[['x :- Number]
['int :- q]]
[:apply 'int 'x]
Number))
([java.lang.Number :> java.lang.Number]
(java.lang.Number :> java.lang.Number)
(java.lang.Number :> java.lang.Integer)
(java.lang.Number :> java.lang.Float)
(java.lang.Integer :> java.lang.Number)
(java.lang.Integer :> java.lang.Integer)
[java.lang.Object :> java.lang.Number]
(java.lang.Integer :> java.lang.Float)
(java.lang.Float :> java.lang.Number)
(java.lang.Float :> java.lang.Integer)
(java.lang.Float :> java.lang.Float)
(java.lang.Object :> java.lang.Number)
(java.lang.Object :> java.lang.Integer)
(java.lang.Object :> java.lang.Float)
(java.lang.Integer :> java.lang.Number)
(java.lang.Integer :> java.lang.Integer)
(java.lang.Integer :> java.lang.Float)
(java.lang.Float :> java.lang.Number)
(java.lang.Float :> java.lang.Integer)
(java.lang.Float :> java.lang.Float))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment