Я пытаюсь напечатать большой список с помощью F #, и мне трудно. Я пытаюсь создать лексический анализатор на F #. Я считаю, что я закончил, но я не могу заставить его распечатать весь список, чтобы проверить его.
вот пример того, что я пытаюсь сделать
let modifierReg = Regex("(public|private)");
let isModifier str = if (modifierReg.IsMatch(str)) then ["Modifier"; str] else ["Keyword"; str]
let readLines filePath = seq {
use sr = new StreamReader (filePath:string)
while not sr.EndOfStream do
yield sr.ReadLine () }
let splitLines listArray =
listArray
|> Seq.map (fun (line: string) -> let m = Regex.Match(line, commentReg) in if m.Success then (m.Groups.Item 1).Value.Split([|' '|], System.StringSplitOptions.RemoveEmptyEntries) else line.Split([|' '|], System.StringSplitOptions.RemoveEmptyEntries) )
let res =
string1
|> readLines
|> splitLines
let scanLines lexicons =
lexicons
|> Seq.map (fun strArray -> strArray |> Seq.map (fun str -> isModifier(str)))
let printSeq seq =
printfn "%A" seq
let scanner filePath =
filePath
|> readLines
|> splitLines
|> scanLines
let scannerResults = scanner pathToCode
printSeq scannerResults
Когда я пытаюсь распечатать список, я получаю следующее
seq [seq [["Ключевое слово"; "класс"]; ["Идентификатор"; «А»]]; seq [["Блокировать"; "{"]]; seq [["Модификатор"; "общественный"]; ["Тип"; "целое"]; ["Идентификатор"; "Икс;"]]; seq [["Модификатор"; "общественный"]; ["Тип"; "целое"]; ["Идентификатор"; "у;"]]; ...]
Я не могу заставить его печатать дальше. Я получаю такое же поведение с чем-то таким простым, как следующее
printfn "%a" [1 .. 101]]
Не могу понять, как распечатать. У кого-нибудь есть опыт в этом? Я не могу найти примеры