Зашифрованные записи в F # -Интерактив - PullRequest
0 голосов
/ 15 августа 2011

При попытке печати

pop

я получаю все это странное оформление в интерактивном режиме F #, что в основном делает печать бесполезной.Есть ли другой способ правильно отформатировать это?

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 ]

3 голосов
/ 15 августа 2011

вы можете захотеть сделать fsi.AddPrinter для вашего типа ScoredIndividual, чтобы управлять тем, что записывается в консоль

3 голосов
/ 15 августа 2011

Вы можете переопределить ToString или использовать StructuredFormatDisplayAttribute для настройки строкового представления. Эта статья содержит некоторую полезную информацию о настройке вывода в fsi.

2 голосов
/ 15 августа 2011

Это довольно грубо, и я не мог найти "легкий" способ исправить это. Тем не менее, FsEye может сделать его лучше (хотя он и удаляет символы новой строки, эти пробелы там хорошо):

enter image description here

...