假设我有一个字符串“COLIN”。
这个字符串的数值是:
3 + 15 + 12 + 9 + 14 = 53.
所以
A = 1, B = 2, C = 3, and so on.
为此,我什至不知道如何从 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 非常适合这个。
我还展示了一个使用 map 的例子,不知道你对什么感兴趣。
关于f# - F# 中的字符值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/526961/