F#中的字符值

mas*_*nix 1 f#

可以说我有一个字符串"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实际工作.

Bri*_*ian 8

你拥有的是体面的; 这是另一个版本:

#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非常适合这个.

我还展示了使用地图的一个例子,不确定你感兴趣的是什么.