如何使用lambda表达式将String转换为小写

Wil*_*iam 5 lambda haskell lowercase

我想知道如何使用该ToLower函数将字符串转换为小写(Char -> Char).

这是我到目前为止的代码:

let newlist = (\(h:t) -> c (h) ++ newlist (\c -> toLower c)
Run Code Online (Sandbox Code Playgroud)

我不知道怎么做而不使用递归,我不知道如何在lambda表达式中使用

mno*_*nha 14

考虑到你可以将eta-reduce明确命名为函数接受的变量,因此不使用lambda表达式会更容易.例如,您可以使用列表理解:

import Data.Char

lowerString str = [ toLower loweredString | loweredString <- str]
Run Code Online (Sandbox Code Playgroud)

您可以称之为:

ghci> lowerString "Hello"
hello
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用map:

lowerString = map toLower
Run Code Online (Sandbox Code Playgroud)

如果你坚持使用lambda表达式,它看起来像这样:

import Data.Char

lowerString = \x -> map toLower x
Run Code Online (Sandbox Code Playgroud)

再一次,不是那么好.