几天后,我试图围绕Haskell中的函数式编程范例.我通过阅读教程和观看截屏视频来完成这项工作,但似乎没有什么能够坚持下去.现在,在学习各种命令式/ OO语言(如C,Java,PHP)时,练习对我来说是个好方法.但由于我不知道Haskell能够做什么,并且因为有许多新概念可供使用,我还不知道从哪里开始.
那么,你是如何学习Haskell的?是什么让你真正"打破僵局"?还有开始练习的好主意吗?
通用接口的类型是否可能基于特定的父类?
例如:
public interface IGenericFace<T : BaseClass>
{
}
Run Code Online (Sandbox Code Playgroud)
显然上面的代码不起作用,但如果确实如此,我试图告诉编译器的是T必须是一个子类BaseClass.可以这样做,有计划吗,等等?
我认为它在特定项目方面很有用,确保通用接口/类在编译时不与非预期类型一起使用.或者也可以自我文档:显示预期的类型.
我是一名C++/Java程序员,我在日常编程中使用的主要范例是OOP.在某些线程中,我读到了一个注释,Type类本质上比OOP更直观.有人能用简单的单词解释类型类的概念,这样像我这样的OOP人能理解吗?
如果我强迫Haskell推断出我得到的数字的类型Num a => a.例如:
Prelude> :t 1
1 :: Num a => a
Run Code Online (Sandbox Code Playgroud)
但是什么a => a意思呢?
1+的类型给出如下:
Prelude> :t (1+)
(1+) :: Num a => a -> a
Run Code Online (Sandbox Code Playgroud)
读取此功能的正确方法是:
1+取一个Num并返回一个类型的函数a -> a?