mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-23 16:28:02 +03:00
Add fromText function to float library
This commit is contained in:
parent
7ae588a10c
commit
cf3b684dc2
@ -249,6 +249,7 @@ builtins0 = Map.fromList $
|
||||
, ("Float.max", "Float -> Float -> Float")
|
||||
, ("Float.min", "Float -> Float -> Float")
|
||||
, ("Float.toText", "Float -> Text")
|
||||
, ("Float.fromText", "Text -> Optional Float")
|
||||
|
||||
, ("Universal.==", "a -> a -> Boolean")
|
||||
|
||||
|
@ -23,6 +23,7 @@ import Data.Text (Text)
|
||||
import Data.Traversable (for)
|
||||
import Data.Sequence (Seq)
|
||||
import Data.Word (Word64)
|
||||
import Text.Read (readMaybe)
|
||||
import Unison.Runtime.IR (pattern CompilationEnv, pattern Req)
|
||||
import Unison.Runtime.IR hiding (CompilationEnv, IR, Req, Value, Z)
|
||||
import Unison.Symbol (Symbol)
|
||||
@ -325,6 +326,8 @@ builtinCompilationEnv = CompilationEnv (builtinsMap <> IR.builtins) mempty
|
||||
, mk2 "Float.max" atf atf (pure . F) max
|
||||
, mk2 "Float.min" atf atf (pure . F) min
|
||||
, mk1 "Float.toText" atf (pure . T) (Text.pack . show)
|
||||
, mk1 "Float.fromText" att (pure . IR.maybeToOptional . fmap F) (
|
||||
(\x -> readMaybe x :: Maybe Double) . Text.unpack)
|
||||
|
||||
, mk2 "Debug.watch" att at id (\t v -> putStrLn (Text.unpack t) *> pure v)
|
||||
]
|
||||
|
@ -1,8 +1,15 @@
|
||||
use Float abs max min toText
|
||||
use Float abs max min toText fromText
|
||||
use Optional Some None
|
||||
|
||||
withDefault : Optional a -> a -> a
|
||||
withDefault opt d = case opt of
|
||||
Some x -> x
|
||||
None -> d
|
||||
|
||||
> (abs 1.1,
|
||||
abs -1.1,
|
||||
max 1.1 1.5,
|
||||
min 1.1 1.5,
|
||||
toText 1.1)
|
||||
|
||||
toText 1.1,
|
||||
withDefault (fromText "1.5") -1.0,
|
||||
withDefault (fromText "Hello world!") -1.0)
|
||||
|
@ -2,4 +2,6 @@
|
||||
1.1,
|
||||
1.5,
|
||||
1.1,
|
||||
"1.1")
|
||||
"1.1",
|
||||
1.5,
|
||||
-1.0)
|
||||
|
Loading…
Reference in New Issue
Block a user