可以说我有一个字符串"COLIN".
这个字符串的数值值得:
3 + 15 + 12 + 9 + 14 = 53.
所以
A = 1,B = 2,C = 3,依此类推.
我不知道如何以F#开头.
let mutable nametotal = 0 let rec tcalculate name = name.ToString().ToCharArray() |> Seq.length
这是我到目前为止所拥有的.的seq.length
是就在那里进行测试,看是否toCharArray
实际工作.
你拥有的是体面的; 这是另一个版本:
#light let Value (c:char) = (int c) - (int 'A') + 1 let CalcValue name = name |> Seq.sum_by Value printfn "COLIN = %d" (CalcValue "COLIN") // may be of interest: printfn "%A" ("COLIN" |> Seq.map Value |> Seq.to_list)
它假定原始输入是大写的."int"是一个将char(或其他)转换为int的函数; Seq.sum_by非常适合这个.
我还展示了使用地图的一个例子,不确定你感兴趣的是什么.