可以说我有一个字符串"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
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的.的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)
Run Code Online (Sandbox Code Playgroud)
它假定原始输入是大写的."int"是一个将char(或其他)转换为int的函数; Seq.sum_by非常适合这个.
我还展示了使用地图的一个例子,不确定你感兴趣的是什么.