首页 > 解决方案 > 如何在 Haskell 中编写密码强度测试程序?

问题描述

我对 Haskell 很陌生,我在互联网上找到了一些练习,其中一个要求编写一个程序,该程序接受一个字符串并检查单词是否至少有 8 个字符、1 个大写字母和 1 个数字。如果确实如此,则返回 true。但是我完全不知道该怎么做。我曾尝试使用 Lambda 表达式,但我认为这不是要走的路。

将不胜感激一些帮助,谢谢

标签: haskellfunctional-programming

解决方案


我会建议这样的事情。

import Data.Char

checkPassword :: String -> Bool
checkPassword xs = all (\f -> f xs) [checkOneDigit, checkOneUppercase, checkLength]
    where checkOneDigit xs = (== 1) $ length $ filter isDigit xs
          checkOneUppercase xs = (== 1) $ length $ filter isUpper xs
          checkLength xs = (>= 8) $ length xs

推荐阅读