如何在Haskell中编写密码强度测试程序?
我对Haskell很陌生,我在网上找到了一些练习,其中一个要求编写一个程序,用字符串检查单词是否至少有8个字符、1个大写字母和1个数字。如果是,则返回true。 但是我完全不知道该怎么办。 我曾尝试使用Lambda表达式,但我认为这不是解决问题的方法 非常感谢你的帮助,如何在Haskell中编写密码强度测试程序?,haskell,functional-programming,Haskell,Functional Programming,我对Haskell很陌生,我在网上找到了一些练习,其中一个要求编写一个程序,用字符串检查单词是否至少有8个字符、1个大写字母和1个数字。如果是,则返回true。 但是我完全不知道该怎么办。 我曾尝试使用Lambda表达式,但我认为这不是解决问题的方法 非常感谢你的帮助, 谢谢我建议这样做 import Data.Char checkPassword :: String -> Bool checkPassword xs = all (\f -> f xs) [checkOneDigi
谢谢我建议这样做
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
看看
all
,any
,isUpper
和isLower
。只是出于好奇,你用的是哪套练习集?我认为一个大写字母应该至少读一个大写字母。。。也许使用any
是一个更好的主意。嗨,丹尼尔,欢迎来到stackoverflow!谢谢你的回答。我只是想说,特别是因为OP要求帮助做一个练习,我觉得这不是一个有用的答案。OP不需要密码检查器,他们主要是学习如何用Haskell编程。我喜欢提供足够的信息来“解锁”这个人,无论他们需要什么来重新开始进步(比如,让他们指向any
函数并给出一个例子)。或者,如果您必须提供完整的解决方案,请将其作为讨论有趣的概念或方法的机会。