如果我正确理解,我们可以将归纳数据类型建模为初始F-代数,将共归纳数据类型建模为最终F-余代数(对于适当的内切函数F) []。我知道,根据Lambek引理,初始代数(和最终余代数)是同构T ≅ F T的不动点解,但我不明白为什么初始代数是最小不动点,而最终余代数是最大不动点。(显然,同构T ≅ F T有一个解决方案吗?)另外,我不太清楚归纳和共归纳数据类型是如何在类型理论中定义的。
我正在写一个小小的雷区游戏。我实现了初始化雷场和布雷的函数。现在,我必须编写一个函数来检查特定坐标是否包含地雷。如果坐标是空闲的,则应将状态从UNKNOWN_FREE更改为KNOWN_FREE并返回0。如果坐标包含雷区-- UNKNOWN_MINE到KNOWN_MINE并返回1。int checkPlace(const Field *f, unsigned int x, unsigned int y)
while (y < f->ysize && x &
我正在努力使递归方案更加熟练,因为到目前为止,它们确实有助于将显式递归代码转化为不太尖峰的代码。在实现算法时,我倾向于使用的其他工具之一是单变压器/可变性,这会使显式递归变得非常混乱。理想情况下,我希望对递归方案足够满意,这样我就可以完全放弃状态。一个例子,一个算法,我仍然会达到变压器的是极小极大与αβ剪枝。我做了一个普通的极小值和极小极大的f-代数(data MinimaxF a f = MMResult a | MMSt