случайное создание в списке fsharp

Я пытаюсь использовать F # для генерации списка случайных троек -> двух случайных чисел и их суммы:

let foo minNum maxNum = 
    let rnd = System.Random()
    let first = rnd.Next(minNum, maxNum)
    let second = rnd.Next(minNum, maxNum)
    let third = first + second
    first, second, third

которые могут быть вызваны таким образом и работают хорошо (всегда дает новое случайное число) (при использовании интерактивного F #)

foo 0 50

При попытке сгенерировать список случайных троек вроде этого

List.init 100 (fun index -> foo 0 50)

я хотел бы, чтобы это был список из 100 рандомизированных троек , но вместо этого приходят все с тем же значением. Я вижу, что функция не зависит от индекса и, следовательно, не требует перерасчета, но я не уверен, как ее обойти (я пробовал ввести индекс как неиспользуемую фиктивную переменную, а также попытался ввести индекс как случайное начальное число, но ни одно из них не помогло)

5
задан svick 13 August 2011 в 16:04
поделиться