尝试打印时
pop
我在F#interactive中得到了所有这些奇怪的格式,这基本上使打印变得毫无用处。还有其他方法可以正确格式化吗?
代码如下:
#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
答案 0 :(得分:3)
您可以覆盖ToString
或使用StructuredFormatDisplayAttribute
自定义字符串表示形式。此article包含有关在fsi中自定义输出的一些有用信息。
答案 1 :(得分:3)
您可能想为ScoredIndividual类型执行fsi.AddPrinter来控制写入控制台的内容
答案 2 :(得分:2)
这非常粗糙,我找不到任何“简单”的方法来修复它。但是,FsEye可以使它更好(虽然它确实删除了换行符,那些空格在那里很好):