在F#-Interactive中看起来很乱的记录

时间:2011-08-15 18:59:14

标签: visual-studio visual-studio-2010 f# f#-interactive

尝试打印时

pop

我在F#interactive中得到了所有这些奇怪的格式,这基本上使打印变得毫无用处。还有其他方法可以正确格式化吗?

enter image description here

代码如下:

#light

open System
let rng = new Random()

type Individual = { x:int; y:int }
type ScoredIndividual = { individual:Individual; score:int }

let genGene() = rng.Next(-10, 10)
let genRandInd() = { x=genGene(); y=genGene() }
let genRandPop popSize = [ for _ in 1 .. popSize -> genRandInd() ]
let getScoredPop f pop = List.map (fun i -> { individual=i; score=(f i)}) pop

let fitnessFun ind = ind.x * ind.x + ind.y * ind.y

let pop = 30 |> genRandPop |> getScoredPop fitnessFun

3 个答案:

答案 0 :(得分:3)

您可以覆盖ToString或使用StructuredFormatDisplayAttribute自定义字符串表示形式。此article包含有关在fsi中自定义输出的一些有用信息。

答案 1 :(得分:3)

您可能想为ScoredIndividual类型执行fsi.AddPrinter来控制写入控制台的内容

答案 2 :(得分:2)

这非常粗糙,我找不到任何“简单”的方法来修复它。但是,FsEye可以使它更好(虽然它确实删除了换行符,那些空格在那里很好):

enter image description here