Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#-string to int list返回ASCII值_F# - Fatal编程技术网

F#-string to int list返回ASCII值

F#-string to int list返回ASCII值,f#,F#,我是F#的新手,所以请对我放轻松:) 我希望将一个字符串转换为整数列表,但是,我编写的代码返回一个ASCII表示的整数列表 let input = "123456" |> Seq.map int |> Seq.map(fun(x) -> x * 2) 返回 98 100 102 104 106 108 我似乎在F#中找不到int.Parse选项。任何帮助都会很好作为一种.NET语言,您

我是F#的新手,所以请对我放轻松:)

我希望将一个字符串转换为整数列表,但是,我编写的代码返回一个ASCII表示的整数列表

let input = "123456"
        |> Seq.map int
        |> Seq.map(fun(x) -> x * 2)
返回

    98 
    100 
    102 
    104 
    106 
    108

我似乎在F#中找不到int.Parse选项。任何帮助都会很好

作为一种.NET语言,您可以直接使用该方法

open System

let input = "123456"
    |> Seq.map Char.GetNumericValue
    |> Seq.map(fun(x) -> x * 2)
编辑:
显然,Int32.Parse不接受单个字符。相应地更新了我的答案。

每当您需要将一组字符映射到有序集中的整数索引时,只需减去集合中第一个值的索引(在本例中为“1”),即可避免使用任何库函数:

"123456"
    |> Seq.map (fun c -> int c - int '1')
    |> Seq.map (fun(x) -> x * 2);;

val it : seq<int> = seq [0; 2; 4; 6; ...]
还有另一种方式:

"123456"
|> Seq.map (string >> int)
|> Seq.map ((*) 2)

Char.GetNumericValue返回一个双精度值,所以我添加了“|>Seq.map int”,它就工作了。谢谢…如果你想说得含糊不清的话:
“123456”|>Seq.map(int>>(((int'1')>>(*)-2)呵呵,这就是为什么我喜欢复合运算符。他们很容易让人迷惑…:为什么不使用int.Parse呢?
"123456"
|> Seq.map (string >> int)
|> Seq.map ((*) 2)