F # Beginner: recuperando uma matriz de dados de um servidor

Estou tentando pegar dados de um banco de dados MySQL.

Abordagem 2 - estilo aplicar / mapa

Estou usando oReferência do MySQL ADO para tentar construir este sistema. Em particular, o exemplo encontrado em 21.2.3.1.7.

(usando um pseudo código)

let table = build_sequence(query.read)

Onde query.read retorna uma linha na tabela (ou melhor, uma lista de elementos que por acaso são uma linha na tabela). E a variável de tabela é uma lista de listas que representarão uma tabela retornada da consulta.

Eu olhei para o código fornecido abaixo, e a sintaxe está acima da minha cabeça, receio.

Abordagem 1 - loop.

Problema 1: é deselegante, exigindo um mutável.

Problema 2: Isso apenassente errado, com base na minha experiência anterior com Prolog & Lisp. Tem que haver mais ...funcional maneira de fazer isso.

Não sei por onde começar. Comentários e pensamentos?

let reader : MySql.Data.MySqlClient.MySqlDataReader = command.ExecuteReader()

let arr = []

let mutable rowIter = 0
let readingLoop() =
    while(reader.Read()) do
        rowIter = rowIter + 1
        for i = 0 to reader.FieldCount do

            //set arr[someiterator, i] = reader.GetValue[i].ToString())

questionAnswers(2)

yourAnswerToTheQuestion