如果Haskell中的列表为空,是否提供默认值列表?
我正在分析命令行参数,以确定希望程序返回的值 但是如果我没有提供任何值,我想在列表中添加一组默认值如果Haskell中的列表为空,是否提供默认值列表?,haskell,Haskell,我正在分析命令行参数,以确定希望程序返回的值 但是如果我没有提供任何值,我想在列表中添加一组默认值 有点像Python的xs=parsed_列表或[1,2,3]只要检查并查看解析的参数列表是否为空,如果是,则提供默认值。例: import System.Environment defaults = undefined foo = do args <- getArgs return $ case args of [] -> defaults xs ->
有点像Python的
xs=parsed_列表或[1,2,3]
只要检查并查看解析的参数列表是否为空,如果是,则提供默认值。例:
import System.Environment
defaults = undefined
foo = do
args <- getArgs
return $ case args of
[] -> defaults
xs -> xs
导入系统环境
默认值=未定义
foo=do
args默认值
xs->xs
只需检查并查看已解析的参数列表是否为空,如果为空,则提供默认值。例:
import System.Environment
defaults = undefined
foo = do
args <- getArgs
return $ case args of
[] -> defaults
xs -> xs
导入系统环境
默认值=未定义
foo=do
args默认值
xs->xs
只需检查并查看已解析的参数列表是否为空,如果为空,则提供默认值。例:
import System.Environment
defaults = undefined
foo = do
args <- getArgs
return $ case args of
[] -> defaults
xs -> xs
导入系统环境
默认值=未定义
foo=do
args默认值
xs->xs
只需检查并查看已解析的参数列表是否为空,如果为空,则提供默认值。例:
import System.Environment
defaults = undefined
foo = do
args <- getArgs
return $ case args of
[] -> defaults
xs -> xs
导入系统环境
默认值=未定义
foo=do
args默认值
xs->xs
使用防护装置:
xs | null parsed_list = [1,2,3]
| otherwise = parser_list
使用如果:(如@Mephy建议)
使用模式匹配:(参见@jtobin的答案)
使用foldr
(不推荐):
使用自定义运算符:
ifEmpty :: [a] -> [a] -> [a]
ifEmpty [] def = def
ifEmpty ys _ = ys
xs = parsed_list `ifEmpty` [1,2,3]
使用防护装置:
xs | null parsed_list = [1,2,3]
| otherwise = parser_list
使用如果:(如@Mephy建议)
使用模式匹配:(参见@jtobin的答案)
使用foldr
(不推荐):
使用自定义运算符:
ifEmpty :: [a] -> [a] -> [a]
ifEmpty [] def = def
ifEmpty ys _ = ys
xs = parsed_list `ifEmpty` [1,2,3]
使用防护装置:
xs | null parsed_list = [1,2,3]
| otherwise = parser_list
使用如果:(如@Mephy建议)
使用模式匹配:(参见@jtobin的答案)
使用foldr
(不推荐):
使用自定义运算符:
ifEmpty :: [a] -> [a] -> [a]
ifEmpty [] def = def
ifEmpty ys _ = ys
xs = parsed_list `ifEmpty` [1,2,3]
使用防护装置:
xs | null parsed_list = [1,2,3]
| otherwise = parser_list
使用如果:(如@Mephy建议)
使用模式匹配:(参见@jtobin的答案)
使用foldr
(不推荐):
使用自定义运算符:
ifEmpty :: [a] -> [a] -> [a]
ifEmpty [] def = def
ifEmpty ys _ = ys
xs = parsed_list `ifEmpty` [1,2,3]
让xs=if null parsed_list然后[1,2,3]else parsed_list
有什么问题?如果您想要类似的演示,只需创建一个函数:null或[]d=d;空值或xs_uxs=xs
。您甚至可以使用它的中缀。让xs=如果空解析列表,那么[1,2,3]否则解析列表有什么问题呢?如果您想要类似的表示,只需创建一个函数:nullOr[]d=d;空值或xs_uxs=xs
。您甚至可以使用它的中缀。让xs=如果空解析列表,那么[1,2,3]否则解析列表有什么问题呢?如果您想要类似的表示,只需创建一个函数:nullOr[]d=d;空值或xs_uxs=xs
。您甚至可以使用它的中缀。让xs=如果空解析列表,那么[1,2,3]否则解析列表有什么问题呢?如果您想要类似的表示,只需创建一个函数:nullOr[]d=d;空值或xs_uxs=xs
。你甚至可以用中缀。