Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types 如何打印序号<;类型>;使用f将值传递到控制台#_Types_F#_Console_Printf - Fatal编程技术网

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