Types 如何打印序号<;类型>;使用f将值传递到控制台#
我试图打印到控制台,一系列类型。该类型定义为:Types 如何打印序号<;类型>;使用f将值传递到控制台#,types,f#,console,printf,Types,F#,Console,Printf,我试图打印到控制台,一系列类型。该类型定义为: // (x,y,z,vx,vy,vz,m) type Body = Body of double * double * double * double * double * double * double 这是怎么做到的?我首先定义了以下函数: let pv ls = Seq.map (fun st -> printf "%f" st) ls printfn "the body is %A" b 我对F#是个新手,任何建议我都会很感激的
// (x,y,z,vx,vy,vz,m)
type Body = Body of double * double * double * double * double * double * double
这是怎么做到的?我首先定义了以下函数:
let pv ls = Seq.map (fun st -> printf "%f" st) ls
printfn "the body is %A" b
我对F#是个新手,任何建议我都会很感激的。谢谢。如果要将序列值打印到控制台,可以通过以下方式执行:
Seq.iter (printfn "%A") ls
您不需要将序列映射到另一个序列,只需对其进行迭代并打印每个值
然而,我不确定这是否是你要求的。你能澄清这个问题吗?如果你想将序列的值打印到控制台,你可以这样做:
Seq.iter (printfn "%A") ls
您不需要将序列映射到另一个序列,只需对其进行迭代并打印每个值
然而,我不确定这是否是你要求的。你能澄清这个问题吗?地图只是一个投影。请看作为映射函数结果的返回类型。而
Seq.iter
实际上执行的是'a->unit
类型的函数
单元
返回类型表明,执行了一些副作用,在这种情况下,屏幕上打印了一些内容
相反,您的投影仅在必要时按需延迟执行。
Seq.map
只是一个投影。请看作为映射函数结果的返回类型。而Seq.iter
实际上执行的是'a->unit
类型的函数
单元
返回类型表明,执行了一些副作用,在这种情况下,屏幕上打印了一些内容
相反,您的投影只在必要时按需执行。注意
Seq.map
采用Seq注意Seq.map
采用Seq我希望打印出包含类型的每个变量,即double*double*double*double*double*double*double*double控制台:x,y,z,vx,vy,vz,y、 z,vx,vy,vz,mx,y,z,vx,vy,vz,mx,y,z,vx,vz,m等等,每一行上的每一种类型:x,y,z,vx,vy,vz,m\n输入建议的代码,它几乎完全符合您的要求(唯一的区别是它在每一行的开头打印类型的名称:Body(1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0)。您可以使用以下命令获得所需的确切格式:Seq.iter(fun(Body(x,y,z,vx,vy,vz,m))->printfn“%f,%f,%f,%f,%f”x y z vx vy vz m)我希望打印出包含该类型的每个变量,即双*双*双*双*双*双*双*双控制台:x,y,z,vx,vy,y,z,vx,vz,vz,mx,y,z,vx,vy,vy,vz,vz,vx,vx,vy,vz,vx,vx,vz,vx,vx,vx,vx,vx,vz,vx,vz,vz,vx,vx,vz,vz,vx,vx,vx,vx,vx,vz,vx,vz,vx,vz,vx,vz,vx,vz,vx,vx,vx,v(唯一的区别是它在每行的开头打印类型的名称:Body(1.0,1.0,1.0,1.0,1.0,1.0,1.0)。您可以使用以下命令获得所需的确切格式:Seq.iter(fun(Body(x,y,z,vx,vy,vz,m))->printfn“%f,%f,%f,%f,%f,%f“x y z vy vz vz m”)
let b = Body("string value1", 5, "string value2")
val b : Body = Body ("string value1", 5, "string value2")
printfn "the body is %A" b