我遇到过对Haskell的引用Data.Typeable,但我不清楚为什么我想在我的代码中使用它.
它解决了什么问题,怎么解决?
haskell generic-programming typeclass scrap-your-boilerplate
这里没有争论,Haskell中有各种各样的机制来处理错误并妥善处理它们.错误monad,Either,Maybe,exception等.
那么为什么在Haskell中编写其他语言中容易出现异常的代码感觉更直接呢?
假设我想编写一个命令行工具来处理在命令行上传递的文件.我想:
所以一个非常直接的文件处理工具.
在Haskell中,我将使用Maybe和Either将这些代码包装在monad的某些组合中,并根据需要翻译和传播错误.最后,它都进入IO monad,我可以将状态输出给用户.
在另一种语言中,我只是抛出异常并捕获到适当的位置.直截了当.我不会花太多时间在认知困境中试图解开我需要的机制组合.
我只是接近这个错误,还是这种感觉有一些实质内容?
编辑:好的,我得到的反馈告诉我,这感觉更难,但事实并非如此.所以这是一个痛点.在Haskell中,我正在处理monad堆栈,如果我必须处理错误,我会在这个monad堆栈中添加另一个层.我不知道有多少电梯和其他语法垃圾只是为了使代码编译而添加,但增加了零语义含义.没有人觉得这增加了复杂性?
有很多关于 SO 的曲线拟合问题,但我似乎无法找到解决我正在寻找的问题的问题。
场景很简单:我在平板电脑屏幕上捕获 X/Y 点。我想将生成的线段绘制为平滑曲线而不是一系列线段。许多应用程序都这样做,例如:Penultimate(0:36 处的草图演示)或Autodesk Sketchbook。
贝塞尔曲线算法采用固定数量的点来绘制曲线,并且似乎不能很好地处理多个多点。任何人都可以指出一个做得很好的算法吗?