在Haskell中同时进行2次类型重命名

在Haskell中同时进行2次类型重命名,haskell,types,tuples,simultaneous,renaming,Haskell,Types,Tuples,Simultaneous,Renaming,我们的任务是制作一个字典,作为带有(String,String)的元组列表。 这里的问题是,我实际上不知道是否可以同时重命名字符串两次,因为我希望元组看起来像这样 (German, English) 甚至可以让它看起来像这样吗 type German = String type English = String type Dictionary = [(German, English)] 还是会有冲突? 找不到关于这一点的任何条目都有点令人沮丧,已经快两个小时了,没有一行代码了:|是的,你可

我们的任务是制作一个字典,作为带有(String,String)的元组列表。 这里的问题是,我实际上不知道是否可以同时重命名字符串两次,因为我希望元组看起来像这样

(German, English)
甚至可以让它看起来像这样吗

type German =  String
type English = String
type Dictionary = [(German, English)]
还是会有冲突?
找不到关于这一点的任何条目都有点令人沮丧,已经快两个小时了,没有一行代码了:|

是的,你可以做到。你不能做相反的事

type German = String
type German = Int        -- conflicts here!

是的,你能做到。你不能做相反的事

type German = String
type German = Int        -- conflicts here!

当然可以,如果不能,首先就不能编译
typederman=String
,因为它已经被命名为;-)

当然可以,如果不能,首先就不能编译
type derman=String
,因为它已经被命名为;-)

好吧,你知道,哈斯克尔不会因为你试过东西而惩罚你。此外,Haskell 2010报告应包含理解类型别名所需的所有文档。当然,可能不是每个问题都有答案,也可能没有明确说明可以将两个变量绑定到42。我投票结束了这个问题,可能有争议。我的理由是这样的:我无法在问题体中确定要解决的问题。(最贴切的一句话是“恐怕这行不通”。但恐惧不是我们能为你解决的问题。)因为没有问题要解决,就不可能有解决方案——这意味着这在网站上不是一件有用的事情。如果包含一个与您的期望不匹配的输入/输出对(例如编译错误或与您期望的行为一起运行的程序),则问题可能会得到显著改善。@DanielWagner我同意您的推理。这个问题本质上归结为“这行得通吗?”而没有证明它是事先尝试过的。虽然这是一个有点非常规的问题,但这肯定属于不恰当问题的定义范围。我投票关闭了很多提问者没有尝试解决方案的帖子,但通常是因为懒惰或不知道从哪里开始而不是恐惧。我可能不得不同意你的观点。我有点害怕,因为虽然哈斯凯尔本身可能不是很惩罚人,但拥抱确实是,这基本上是我在大学课程中必须使用的。在问题被回答后,我立即继续,这样关闭它就不会有任何问题了。好吧,你知道,哈斯克尔不会因为你尝试东西而惩罚你。此外,Haskell 2010报告应包含理解类型别名所需的所有文档。当然,可能不是每个问题都有答案,也可能没有明确说明可以将两个变量绑定到42。我投票结束了这个问题,可能有争议。我的理由是这样的:我无法在问题体中确定要解决的问题。(最贴切的一句话是“恐怕这行不通”。但恐惧不是我们能为你解决的问题。)因为没有问题要解决,就不可能有解决方案——这意味着这在网站上不是一件有用的事情。如果包含一个与您的期望不匹配的输入/输出对(例如编译错误或与您期望的行为一起运行的程序),则问题可能会得到显著改善。@DanielWagner我同意您的推理。这个问题本质上归结为“这行得通吗?”而没有证明它是事先尝试过的。虽然这是一个有点非常规的问题,但这肯定属于不恰当问题的定义范围。我投票关闭了很多提问者没有尝试解决方案的帖子,但通常是因为懒惰或不知道从哪里开始而不是恐惧。我可能不得不同意你的观点。我有点害怕,因为虽然哈斯凯尔本身可能不是很惩罚人,但拥抱确实是,这基本上是我在大学课程中必须使用的。回答完问题后,我立即继续,这样关闭它就不会有任何问题。