Я пытаюсь напечатать большой список с помощью 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 [["Block"; "{"]];
seq [["Модификатор"; "Общественность"]; ["Тип"; "INT"]; ["Идентификатор"; "Икс;"]];
seq [["Модификатор"; "Общественность"]; ["Тип"; "INT"]; ["Идентификатор"; "У";]]; ...]
Я не могу заставить его печатать дальше. Я получаю такое же поведение с чем-то простым, как показано ниже
printfn "%a" [1 .. 101]]
Я не могу понять, как распечатать это. У кого-нибудь есть опыт с этим? Я не могу найти примеры