Я пытаюсь изучить F # и боюсь, что я не понимаю что-то так, как следовало бы.
Я пытаюсь воссоздать функциональность книги, которая мне больше нравится (Творческое ругательство от Рояль и Панарезе).
В двух словах, у вас есть два отдельных списка слов, из которых можно выбрать два случайных слова, в результате чего получается странная фраза.Достаточно просто?
Вот что у меня есть:
#light
open System
open System.IO
let getWordList file =
File.ReadAllLines( file )
let getRandArrElement (arr : string[]) =
let rnd = Random( 0 )
arr |> Seq.nth (rnd.Next arr.Length)
let wordList1 = getWordList "words1.txt"
let wordList2 = getWordList "words2.txt"
let word1 = getRandArrElement wordList1
let word2 = getRandArrElement wordList2
printf "%s %s" word1 word2
Это тоже работает.За исключением того, что он возвращает одну и ту же фразу каждый раз при запуске.
У меня такое ощущение, что он вычисляет одно случайное значение на один вызов getRandArrElement во время компиляции, а затем использует это значение в качестве значения THE(что я считаю странным, но что я знаю?).
Что не так с моей логикой, и как мне ее исправить?