我試圖寫一個字符串從輸入和發現列表中的該字符串,並返回在列表中,如果位置的功能找到了。我不知道如何去做這件事。有任何想法嗎?想寫一個字符串從輸入的功能,並找到該字符串列表中的
回答
我沒有完全理解你的問題,但可能是你需要的是這樣的:
find_str :: [String] -> String -> Integer
find_str list str = help_func list str 0
help_func [] str idx = -1
help_func (h:t) str idx | h == str = idx
| otherwise = help_func t str (idx + 1)
該函數返回該字符串的索引列表,或-1,如果沒有找到
例如:
find_str ["abc", "bcs", "qwe"] "bcs"
返回1
find_str ["abc", "bcs", "qwe"] "abcs"
返回-1
這正是我所需要的。謝謝 – ghostofrasputin 2015-03-31 01:08:10
有很多更一般和更優化的方法。查看OP的問題的評論。 – utdemir 2015-06-02 07:15:41
如果字符串不在列表中,該怎麼辦?我們應該適當地處理這種情況。所以這個函數只有可能返回列表中字符串的索引。在此基礎上的描述,這個功能的簽名是:
strPos :: String -> [String] -> Maybe Int
此功能strPos
將主要檢查在列表中的第一參數平等的每個項目,同時增加了指數的當前值。你可以用一個輔助函數來完成這個操作,該輔助函數也需要一個整數作爲參數,並將0傳遞給它。如果該物品未找到,該怎麼辦?如果清單是空的呢?提示:這兩種情況可以用相同的方式處理。
當然你可以通過Maybe類型,如果需要的話 – Mikhail 2015-03-30 21:21:02
返回一個錯誤代碼讓我覺得笨重。通過這種方式,失敗的可能性被嵌入到類型簽名中,並且我認爲該功能更易於使用。 – zcleghern 2015-03-30 21:23:59
我用if語句來檢查函數是否返回大於0的值。對於我的程序來說,錯誤代碼真的很有用 – ghostofrasputin 2015-04-01 05:59:01
- 1. 從字符串列表中找到最快的字符串
- 2. 從另一個字符串中刪除字符串中的字符的功能
- 3. 如何找到一個字符串的大寫字符串?
- 4. 取一個字符串並從該字符串中只插入數字
- 5. 從文件輸入字符串並比較輸入字符串
- 6. 在輸入字符串中查找字符串中的子串
- 7. 從字符串列表到字符串中的接口列表
- 8. 輸入字符串,顯示輸入的字符串並將字符串大寫轉換爲小寫?
- 9. 不斷加入一個字符串列表到字符串
- 10. 找到並從字符串
- 11. 如何從另一個字符串中輸入表值字符串的值?
- 12. 輸入字符串到表
- 13. 找到一個字符串根據輸入字符在sql
- 14. 從字符串列表中的字符串找到子串LAMBDA聲明
- 15. Python:如果找到一個字符串,停止搜索該字符串,搜索下一個字符串,並輸出匹配的字符串
- 16. 使用列表定義字符串的字符的列表,並寫一個遞歸函數返回字符串
- 17. 在一組字符串中查找輸入字符串..?
- 18. 查找字符串,並得到一切從字符串到下一個空間
- 19. 在字符串中找到一個數組中的字符串
- 20. 查找字符串列表中的字符串是否位於另一個Esper字符串列表中
- 21. 查找在另一個字符串列表中有一個項目的子字符串的所有字符串
- 22. Python中找到該字符串匹配的隨機字符串
- 23. 從另一個文件輸入字符串功能
- 24. Scala - 字符串到方形字符串的列表字符串
- 25. 從C中的十個字符串列表中找出最長的字符串?
- 26. 在另一個字符串中查找一個字符串的字符串
- 27. 按字符輸入字符串變量的子字符串到文本框字符的功能
- 28. 如何找到一個字符串中的字符串
- 29. XSL找到一個字符串,並從該點開始
- 30. 從C++中的輸入字符串中分隔字符串和int字符串
你能否至少寫一些僞代碼來演示你想要做什麼?它甚至不必是Haskell-ish僞代碼,只是爲了清楚地顯示你正在嘗試做什麼。你的問題並沒有提供你所知道的Haskell解決手頭問題的方法,而你迄今爲止還沒有提到你嘗試過的任何方法。 – bheklilr 2015-03-30 21:09:16
你想要的功能似乎是[elemIndex](http://haddocks.fpcomplete.com/fp/7.8/20140916-162/base/Data-List.html#v:elemIndex)。 – user2407038 2015-03-30 21:12:16
或者http://hackage.haskell.org/package/bytestring-0.10.6.0/docs/Data-ByteString.html#v:find – GeneralBecos 2015-03-30 21:20:28