在 SML 中将 int 转换为 real
Converting int to real in SML
SML 新手
我有以下代码 returns 列表的绝对值。我需要它的类型是 int list -> real list。在将此代码限制为单行的同时,我在哪里放置将其转换为 real 的语句?
val myabs = map(fn x => if x >= 0 then x else ~x) [1,~2, 3, ~4];
您使用 Real.fromInt
:
将 int 转换为 real
- Real.fromInt 42;
> val it = 42.0 : real
您可以通过 List.map Real.fromInt
:
将 int 列表 转换为 real 列表
- List.map Real.fromInt [1, 2, 3];
> val it = [1.0, 2.0, 3.0] : real list
您可以使用 Int.abs
:
将整数转换为其绝对值
- Int.abs ~42;
> val it = 42 : int
您可以组合这两个函数,这样既可以将整数转换为其绝对值,也可以将其转换为 实数:
- (Real.fromInt o Int.abs) ~42;
> val it = 42.0 : real
您可以使用 List.map (Real.fromInt o Int.abs)
:
对整个列表执行此操作
- List.map (Real.fromInt o Int.abs) [~1, ~2, ~3];
> val it = [1.0, 2.0, 3.0] : real list
您可以将其表示为单个函数:
fun myabs xs = List.map (fn x => Real.fromInt (Int.abs x)) xs
你可以稍微缩短这个函数:
val myabs = List.map (fn x => Real.fromInt (Int.abs x))
val myabs = List.map (fn x => (Real.fromInt o Int.abs) x)
val myabs = List.map (Real.fromInt o Int.abs)
所以唯一缺少的部分是:
- 而不是
if x >= 0 then x else ~x
,使用 Int.abs x
。
- 要将
x
转换为实数,请使用 Real.fromInt x
。
- 按顺序应用多个函数,
f (g x)
或 (f o g) x
,如数学。
SML 新手
我有以下代码 returns 列表的绝对值。我需要它的类型是 int list -> real list。在将此代码限制为单行的同时,我在哪里放置将其转换为 real 的语句?
val myabs = map(fn x => if x >= 0 then x else ~x) [1,~2, 3, ~4];
您使用 Real.fromInt
:
- Real.fromInt 42;
> val it = 42.0 : real
您可以通过 List.map Real.fromInt
:
- List.map Real.fromInt [1, 2, 3];
> val it = [1.0, 2.0, 3.0] : real list
您可以使用 Int.abs
:
- Int.abs ~42;
> val it = 42 : int
您可以组合这两个函数,这样既可以将整数转换为其绝对值,也可以将其转换为 实数:
- (Real.fromInt o Int.abs) ~42;
> val it = 42.0 : real
您可以使用 List.map (Real.fromInt o Int.abs)
:
- List.map (Real.fromInt o Int.abs) [~1, ~2, ~3];
> val it = [1.0, 2.0, 3.0] : real list
您可以将其表示为单个函数:
fun myabs xs = List.map (fn x => Real.fromInt (Int.abs x)) xs
你可以稍微缩短这个函数:
val myabs = List.map (fn x => Real.fromInt (Int.abs x))
val myabs = List.map (fn x => (Real.fromInt o Int.abs) x)
val myabs = List.map (Real.fromInt o Int.abs)
所以唯一缺少的部分是:
- 而不是
if x >= 0 then x else ~x
,使用Int.abs x
。 - 要将
x
转换为实数,请使用Real.fromInt x
。 - 按顺序应用多个函数,
f (g x)
或(f o g) x
,如数学。