anchor.diff:      
       for d in sampleData do
           printfn "age:%f height:%f" d.age d.height
  +
  +    let (a, c) = guess(sampleData) 
  +    let step = 1.0;
       
  -    let c = 0.75003
  -    let ourF a = -(cost sampleData a c)
  +    let ourF x = -(cost sampleData x c)
       
  -    let trail = climbHill ourF 1.0 10.9
  +    let trail = climbHill ourF a step
   
       for (a, cost) in trail do
           printfn "a:%f cost:%f" a cost
  
positive.code:         yield Double.Parse(line)
  ]
  
  type datum = {age:float; height:float}
  
  let rec climbHill (f: float -> float) (x:float) (step:float) = seq{   
  
negative.code:     yield! climbHill f x' step'       
  }    
  
  let guess (data: datum list) =
      let first = data.Head
      let last = List.reduce (fun _ i -> i) data
      if first.height = last.height then
          (0.0, first.height)
      else
          let a = (last.height - first.height)/(last.age - first.age)
          let c = first.height - (first.age * a)
          (a, c)            
  
  let costDatum a c (dtm:datum)  =
      let est = a * dtm.age + c
      let error = est - dtm.height
      error * error
  
  