title: Second Taxicab Number Generator
body: <p>I am attempting to generate a series of guesses for the second Taxicab number. What I want to do is is call the Attempt function on a series of integers in a finite sequence. I have my two questions about implementation in the comments.
  A taxi cab number, in case your wondering, is the least number that satisfied the sum of 2 unique cubes in for n unique sets of 2 unique cubes. Ta(2) is 1729.</p>
  
  <pre><code>[&lt;EntryPoint&gt;]
  let main argv =
      let Attempt (start : int) =
          let stop = start+20
          let integerList = [start..stop]
          let list = List.init 3 (fun x -&gt; integerList.[x])
          //Is there a simple way to make initialize the list with random indices of integerList?
          let Cube x = x*x*x
          let newlist = list |&gt; List.map (fun x -&gt; Cube x)
          let partitionList (x : List&lt;int&gt;) (y : int) = List.sum [x.[y];x.[y+1]]
          let intLIST = [0..2]
          let partitionList' = [for i in intLIST do yield partitionList newlist i]
          let x = Set.ofList partitionList'
          let y = Set.ofList partitionList'
          //I was going to try to use some kind of equality operator to determine whether the two sets were equal, which could tell me whether we had actually found a Taxicab number by the weakened definition.
          System.Console.Write(list)
          System.Console.Write(newlist)
  let rnd = System.Random()
  //My primary question is how can I convert a random to an integer to use in start for the function Attempt?
  System.Console.ReadKey() |&gt; ignore
  printfn("%A") argv
  0
  </code></pre>