on master help sign in
Move all infix ops out of elm to get code gen right
29578e5Evan Czaplicki
libraries/Basics.elm+4−4
@@ -58,25 +58,25 @@ radians t = t
58
58
59{-| Convert degrees to standard Elm angles (radians). -}
59{-| Convert degrees to standard Elm angles (radians). -}
60degrees : Float -> Float
60degrees : Float -> Float
61−degrees d = d * Native.Basics.pi / 180
61+degrees = Native.Basics.degrees
62
62
63{-| Convert turns to standard Elm angles (radians).
63{-| Convert turns to standard Elm angles (radians).
64One turn is equal to 360°.
64One turn is equal to 360°.
65-}
65-}
66turns : Float -> Float
66turns : Float -> Float
67−turns r = 2 * Native.Basics.pi * r
67+turns = Native.Basics.turns
68
68
69{-| Start with polar coordinates (r,θ)
69{-| Start with polar coordinates (r,θ)
70and get out cartesian coordinates (x,y).
70and get out cartesian coordinates (x,y).
71-}
71-}
72fromPolar : (Float,Float) -> (Float,Float)
72fromPolar : (Float,Float) -> (Float,Float)
73−fromPolar (r,t) = (r * Native.Basics.cos t, r * Native.Basics.sin t)
73+fromPolar = Native.Basics.fromPolar
74
74
75{-| Start with cartesian coordinates (x,y)
75{-| Start with cartesian coordinates (x,y)
76and get out polar coordinates (r,θ).
76and get out polar coordinates (r,θ).
77-}
77-}
78toPolar : (Float,Float) -> (Float,Float)
78toPolar : (Float,Float) -> (Float,Float)
79−toPolar (x,y) = (Native.Basics.sqrt (x^2 + y^2), Native.Basics.atan2 y x)
79+toPolar = Native.Basics.toPolar
80
80
81(+) : number -> number -> number
81(+) : number -> number -> number
82(+) = Native.Basics.add
82(+) = Native.Basics.add
libraries/Native/Basics.js+22
@@ -23,6 +23,23 @@ Elm.Native.Basics.make = function(elm) {
23
23
24 function truncate(n) { return n|0; }
24 function truncate(n) { return n|0; }
25
25
26+ function degrees(d) {
27+ return d * Math.PI / 180;
28+ }
29+ function turns(t) {
30+ return 2 * Math.PI * t;
31+ }
32+ function fromPolar(point) {
33+ var r = point._0;
34+ var t = point._1;
35+ return Utils.Tuple2(r * Math.cos(t), r * Math.sin(t));
36+ }
37+ function toPolar(point) {
38+ var x = point._0;
39+ var y = point._1;
40+ return Utils.Tuple2(Math.sqrt(x * x + y * y), Math.atan2(y,x));
41+ }
42+
26 var basics = {
43 var basics = {
27 div:F2(div),
44 div:F2(div),
28 rem:F2(rem),
45 rem:F2(rem),
@@ -38,6 +55,11 @@ Elm.Native.Basics.make = function(elm) {
38 atan:Math.atan,
55 atan:Math.atan,
39 atan2:F2(Math.atan2),
56 atan2:F2(Math.atan2),
40
57
58+ degrees: degrees,
59+ turns: turns,
60+ fromPolar: fromPolar,
61+ toPolar: toPolar,
62+
41 sqrt:Math.sqrt,
63 sqrt:Math.sqrt,
42 abs:abs,
64 abs:abs,
43 logBase:F2(logBase),
65 logBase:F2(logBase),