代码之家  ›  专栏  ›  技术社区  ›  bstpierre Edgar Aviles

哈斯克尔:99个问题7:异类列表

  •  2
  • bstpierre Edgar Aviles  · 技术社区  · 14 年前

    我在学哈斯克尔。当前正在通过 99 questions 有点卡在7上:

    问题7 (**)展平嵌套列表结构。

    转换一个列表,可能将列表作为元素保存到一个“平面”列表中,方法是将每个列表替换为其元素(递归)。

    Haskell中的示例:

    *Main> flatten (Elem 5)
    [5]
    *Main> flatten (List [Elem 1, List [Elem 2, List [Elem 3, Elem 4], Elem 5]])
    [1,2,3,4,5]
    *Main> flatten (List [])
    []
    

    哪里做 Elem List 来自何方?我需要做什么才能在我的程序中使用它们?(或者,这个问题假设我必须为这些定义一个新的类型——如果答案是这样的话,我将离开并重新阅读教程的那个部分…)

    1 回复  |  直到 14 年前
        1
  •  8
  •   kennytm    14 年前

    这些只是一些类型的构造函数,例如

    data ListType a = Elem a | List [ListType a]