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
Dll F#有自己的字符串操作库吗?_Dll_F# - Fatal编程技术网

Dll F#有自己的字符串操作库吗?

Dll F#有自己的字符串操作库吗?,dll,f#,Dll,F#,F#有自己的字符串操作库吗? 当我试图学习F#时,我发现自己正在使用现有的System.string方法 我应该这样做吗 代码: open System type PhoneNumber = { CountryCode:int Number:string } // b. Create a function formatPhone that accepts a PhoneNumber record and formats it to look like something

F#有自己的字符串操作库吗?

当我试图学习F#时,我发现自己正在使用现有的System.string方法

我应该这样做吗

代码:

open System

type PhoneNumber = 
    { CountryCode:int
      Number:string }

// b. Create a function formatPhone that accepts a PhoneNumber record and formats it to look like something like this: "+44 1234 456789"  
let formatPhone phoneNumber =

    let getLeadingCharacters (length:int) (text:string) =
        text.Substring(0, length)

    let getLastCharacters (length:int) (text:string) =
        text.Substring(text.Length - length, length)

    printf "+%i %s %s" phoneNumber.CountryCode 
                       (phoneNumber.Number |> getLeadingCharacters 4)
                       (phoneNumber.Number |> getLastCharacters 6)

formatPhone { CountryCode=44; Number="123456789" };;
let formatPhone phoneNumber =

    let getLeadingCharacters (length:int) (text:string) =
        text.Substring(0, length)

    let getLastCharacters (length:int) (text:string) =
        text.Substring(text.Length - length, length)

    printf "+%i %s %s" phoneNumber.CountryCode 
                       (phoneNumber.Number |> getLeadingCharacters 4)
                       (phoneNumber.Number |> getLastCharacters 6)

formatPhone { CountryCode=44; Number="123456789" };;
let formatPhone phoneNumber =

    printf "+%i %s %s" phoneNumber.CountryCode 
                       phoneNumber.Number.[0..3]
                       phoneNumber.Number.[4..8]

formatPhone { CountryCode=44; Number="123456789" };;
更新

更新的函数来自:

open System

type PhoneNumber = 
    { CountryCode:int
      Number:string }

// b. Create a function formatPhone that accepts a PhoneNumber record and formats it to look like something like this: "+44 1234 456789"  
let formatPhone phoneNumber =

    let getLeadingCharacters (length:int) (text:string) =
        text.Substring(0, length)

    let getLastCharacters (length:int) (text:string) =
        text.Substring(text.Length - length, length)

    printf "+%i %s %s" phoneNumber.CountryCode 
                       (phoneNumber.Number |> getLeadingCharacters 4)
                       (phoneNumber.Number |> getLastCharacters 6)

formatPhone { CountryCode=44; Number="123456789" };;
let formatPhone phoneNumber =

    let getLeadingCharacters (length:int) (text:string) =
        text.Substring(0, length)

    let getLastCharacters (length:int) (text:string) =
        text.Substring(text.Length - length, length)

    printf "+%i %s %s" phoneNumber.CountryCode 
                       (phoneNumber.Number |> getLeadingCharacters 4)
                       (phoneNumber.Number |> getLastCharacters 6)

formatPhone { CountryCode=44; Number="123456789" };;
let formatPhone phoneNumber =

    printf "+%i %s %s" phoneNumber.CountryCode 
                       phoneNumber.Number.[0..3]
                       phoneNumber.Number.[4..8]

formatPhone { CountryCode=44; Number="123456789" };;
至:

open System

type PhoneNumber = 
    { CountryCode:int
      Number:string }

// b. Create a function formatPhone that accepts a PhoneNumber record and formats it to look like something like this: "+44 1234 456789"  
let formatPhone phoneNumber =

    let getLeadingCharacters (length:int) (text:string) =
        text.Substring(0, length)

    let getLastCharacters (length:int) (text:string) =
        text.Substring(text.Length - length, length)

    printf "+%i %s %s" phoneNumber.CountryCode 
                       (phoneNumber.Number |> getLeadingCharacters 4)
                       (phoneNumber.Number |> getLastCharacters 6)

formatPhone { CountryCode=44; Number="123456789" };;
let formatPhone phoneNumber =

    let getLeadingCharacters (length:int) (text:string) =
        text.Substring(0, length)

    let getLastCharacters (length:int) (text:string) =
        text.Substring(text.Length - length, length)

    printf "+%i %s %s" phoneNumber.CountryCode 
                       (phoneNumber.Number |> getLeadingCharacters 4)
                       (phoneNumber.Number |> getLastCharacters 6)

formatPhone { CountryCode=44; Number="123456789" };;
let formatPhone phoneNumber =

    printf "+%i %s %s" phoneNumber.CountryCode 
                       phoneNumber.Number.[0..3]
                       phoneNumber.Number.[4..8]

formatPhone { CountryCode=44; Number="123456789" };;
不,F#没有复制.NET库的特定文件。它确实有一个带有额外字符串函数的函数

是的,使用.NET函数

事实上,F#可以利用所有的.NET库,这是它最强大的功能之一。起初,将使用curried参数的函数与使用tuple参数的.NET函数混合使用似乎有些奇怪

这就是为什么在NuGet中您会看到同样具有FSharp扩展的包。e、 g.和。这些包装函数允许.NET库的惯用F#使用

在寻找与F#一起使用的函数和方法时,我经常使用这个技巧。 要搜索.NET,请使用
class
作为关键字,要搜索F#特定代码,请使用
module
作为关键字

例如:

谷歌:
MSDN字符串类

第一项:

谷歌:
MSDN字符串模块

第一项:(现在是404),但它也是F#语言参考的有效链接。有点不对劲。

视情况而定

如果您使用FAKE之类的开源库编写脚本, 您可以重用它的StringHelper模块


FAKE包含一个StringHelper模块

您拥有丰富的知识。我怎么能听懂你的话?例如,YouTube、博客、播客等等……我通过跟踪和阅读这里的大多数新问题获得了大部分知识。我确实读了很多研究论文,写了很多很多代码。在过去的几个月里,我一直在学习神经网络的基础知识,并坚持解决问题,即使这些问题需要一周或更长的时间才能解决。我最近了解到,调试神经网络的最佳方法之一是使用视觉图像,而不是查看所有权重和偏差的值。我一直在创建类似
getLeadingCharacters
的小型反腐败函数。我觉得这是非常正常的。采用的术语是来自的反腐败层。虽然是的,但在本例中,您最有可能使用提供的字符串方法,但我会使用范围(现在可以很好地处理字符串)-例如
“Hello curel World”。[6..10]
将为您提供
“残酷的”
;)很高兴知道。谢谢Carsten,我更新了我发布的示例。这不只是作为答案发布的评论吗?