Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果Haskell中的列表为空,是否提供默认值列表?_Haskell - Fatal编程技术网

如果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
。你甚至可以用中缀。