HaskellLambdaCase
示例
语法扩展使您可以\case代替\arg->caseargof。
考虑以下函数定义:
dayOfTheWeek :: Int -> String dayOfTheWeek 0 = "Sunday" dayOfTheWeek 1 = "Monday" dayOfTheWeek 2 = "Tuesday" dayOfTheWeek 3 = "Wednesday" dayOfTheWeek 4 = "Thursday" dayOfTheWeek 5 = "Friday" dayOfTheWeek 6 = "Saturday"
如果要避免重复函数名称,可以编写类似以下内容的内容:
dayOfTheWeek :: Int -> String dayOfTheWeek i = case i of 0 -> "Sunday" 1 -> "Monday" 2 -> "Tuesday" 3 -> "Wednesday" 4 -> "Thursday" 5 -> "Friday" 6 -> "Saturday"
使用LambdaCase扩展,您可以将其编写为函数表达式,而无需命名参数:
{-# LANGUAGE LambdaCase #-} dayOfTheWeek :: Int -> String dayOfTheWeek = \case 0 -> "Sunday" 1 -> "Monday" 2 -> "Tuesday" 3 -> "Wednesday" 4 -> "Thursday" 5 -> "Friday" 6 -> "Saturday"