我在执行简单的加法,减法时遇到了一些麻烦 - 任何类型的代数都与Haskells newtype有关.
我的定义是(显示包含所以我可以将它们打印到控制台):
newtype Money = Money Integer deriving Show
Run Code Online (Sandbox Code Playgroud)
我想要做的基本上是:
Money 15 + Money 5 = Money 20
Money 15 - Money 5 = Money 10
Money 15 / Money 5 = Money 3
Run Code Online (Sandbox Code Playgroud)
等等,但我得到了
m = Money 15
n = Money 5
Main>> m-n
ERROR - Cannot infer instance
*** Instance : Num Money
*** Expression : m - n
Run Code Online (Sandbox Code Playgroud)
关于这里的继承是如何工作的,我找不到清楚明确的解释.任何和所有的帮助将不胜感激.
我试图把一个名字和姓氏列表结合起来,没有运气.我的代码目前是这样的:
firstname=['Tom','Dick','Steve']
surname=['Johnson','Smith','Doe']
for f in (firstname):
for s in (surname):
print(f,s)
Run Code Online (Sandbox Code Playgroud)
这给了我这样的东西:
Tom Johnson
Tom Smith
Tom Doe
Dick Johnson
Run Code Online (Sandbox Code Playgroud)
等等,当我真正想要的时候:
Tom Johnson
Dick Smith
Steve Doe
Run Code Online (Sandbox Code Playgroud)
非常感谢像我这样的初学者.