Зашифрованные записи в F#-Интерактив
При попытке распечатать
pop
Я получаю все это странно выглядящее форматирование в F# интерактиве, что в основном делает печать бесполезной. Есть ли другой способ правильно отформатировать это?
Код следующий:
#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 ответа
Решение
Вы можете переопределить ToString
или использовать StructuredFormatDisplayAttribute
настроить строковое представление. Эта статья содержит некоторую полезную информацию о настройке вывода в fsi.
Вы можете захотеть сделать fsi.AddPrinter для вашего типа ScoredIndividual, чтобы контролировать, что записывается на консоль
Это довольно грубо, и я не мог найти "легкий" способ исправить это. Тем не менее, FsEye может сделать его лучше (хотя он и удаляет символы новой строки, эти пробелы там хорошо):