清洁 - 附加到列表

时间:2015-10-03 12:10:16

标签: functional-programming

我正在尝试附加到Clean programming language

中的列表

这是我的代码:

import StdEnv

path0 = "urrd"
//path1 = "urdl"
//path2 = "uurrddll"
//path3 = "ururdrdldlul"

Mirror :: [Char] -> [Char]

Mirror [] = []
Mirror str = [(NegatePath last str) : (Mirror init str)]

NegatePath :: Char -> Char

NegatePath 'u' = 'd'
NegatePath 'd' = 'u'
NegatePath 'l' = 'r'
NegatePath 'r' = 'l'

Start = Mirror path0

这是我得到的错误:

输入错误[Homokozoo.icl,13,Mirror]:"列表构造函数的参数1"无法统一类型​​: [字符] {#Char}

1 个答案:

答案 0 :(得分:1)

在阅读这个问题之前,我并不清楚干净的语言,所以这可能会有所不同,但我认为在花了一些时间扫描语言报告的第4章之后,我已经确定了这个问题。问题似乎是您的[Char]函数是为了对字符列表{#Char}进行操作而构建的,但您传递的是未装箱的字符数组path0 = ['urrd']

如果您声明了

,它可能会有效
path0

以便Mirror的类型是字符列表而不是未装箱的字符数组。如果这不是您想要的,您可能需要修改{Char}功能才能使用select *, (select sum(level = 'bronze') from membership) as bronze_count from membership order by case when level = 'bronze' then 1 else 2 end, memberdate desc