簡體   English   中英

FSharp F#中的字符串編輯問題

[英]String editing issues in FSharp F#

我對F#語言和功能優先的方法還很陌生,因為我只使用面向對象的語言。

我正在嘗試創建一個簡單的Word Guesser控制台應用程序。 我正在使用的功能是能夠一次猜出多個字符

我很難拼湊一個很好的方法來完成此操作,因為我想采用一種功能性方法,並且最終總是遇到不可變數組等問題。

這是我想出的:

我試圖替換/顯示給定單詞的索引上的字符,這對應於猜測並返回結果字符串

有線索嗎?

親切的問候

一種容易獲得的功能性方法是使用匹配項,但重新生成新的字符串。

您可能還想使用Some / None(如果您查看函數的簽名,它會為您提供一個作為函數結果的選項字符串),這是一種實用的編寫方法,但是如果您需要一個空鏈,也可以返回一個)。 請參閱F#的聖經fsharpforfunandprofit.com

一些評論:

  • .NET中的OOP(假設為C#):您將使用Substring方法而不是for循環
  • 請注意,Substirng可以返回異常(如果您將鼠標放在其上,它會在消息框中告訴您),並避免在運行時出現任何問題(因為我們通常不使用F#中的異常-cf fsharpforfunandprofit的鐵路編程),則需要進行第二次匹配才能檢查長度。

https://fsharpforfunandprofit.com/posts/the-option-type/

let stringContains (word:string) (hidden:string) (guess:string) =
    match word.IndexOf(guess) with
    | -1 -> None
    | ind -> match (hidden.Length < ind) with
                     | true -> Some (guess)
                     | false -> Some (hidden.Substring(0, ind) + guess)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM