结构化程序设计方法提出于:代数结构与程序设计(algebraic structure)

可能有人给我一个例子,我们如何使用组,monoids 和环等代数结构来提高代码的可重用性?(或者我如何在编程中使用这些结构,至少知道我没有在高中学习所有的理论)。

我听说这是可能的,但我不知道如何在编程中应用它们,并在编程中普遍应用硬核数学。

2

这并不是真正的数学东西,而是数学思维。抽象是编程的关键。将真实的实时概念转换为数字和关系是我们每天都在做的事情。代数是所有事物的母亲,代数是定义正确性的规则集,它是最高水平的抽象,因此,理解代数意味着您可以思考更清晰,更快,更有效的东西,例如从集合理论到类别理论,领域理论的发展,您都需要实践。

0

在函数式编程中,尤其是在 Haskell 中,将状态转换为 monad 的结构程序很常见。这样做意味着您可以在非常不同的程序中重用 monad 上的通用算法。

C++ 标准模板库以 amonoid的概念为特色。这个想法是,泛型算法可能需要一个操作来满足其正确性的类元公理。

例如,如果我们可以证明我们正在操作的类型T(数字,字符串,无论什么)在操作下是封闭的,我们知道我们不必检查某些错误;我们总是得到一个有效的T回来。

0

如今,计算机科学似乎从category theory中获得了很多好处。您会得到 monad,monoids,functor-整个数学实体,这些数学实体被用来提高代码的可重用性,利用抽象数学的抽象。

0

列表是具有一个生成器的自由 monoids,二叉树是组。您有有限或无限变体。

起点:

http://en..org/wiki/Algebraic_data_type http://en..org/wiki/Initial_algebra http://en..org/wiki/F-algebra

你可能想学习范畴理论,以及范畴理论处理代数结构的方式:这正是函数式编程语言处理数据结构的方式,至少是 shapewise。

示例:类型树 A 为

Tree A = () | Tree A | Tree A * Tree A

读作同构的存在(*)(我设置G = Tree A

1 + G + G x G -> G

这与组结构相同

phi : 1 + G + G x G -> G
() € 1         -> e
x € G          -> x^(-1)
(x, y) € G x G -> x * y

实际上,二叉树可以表示表达式,并且它们形成代数结构。G 的元素读取为身份,元素的逆或两个元素的乘积。二叉树是叶子,单棵树或一对树。请注意形状上的相似性。

(*)以及一个通用属性,但它们是其中的两个(有限树或无限懒惰树),所以我不会详细介绍。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(530)
Chris reeve:响应时的空结构(elliot reeve)
上一篇
Native代码:ReactNative代码在react-native-device-info后中断
下一篇

相关推荐

  • comeandgetyourlove音乐爱就在你身边

    Come and Get Your Love是一首热门的歌曲,由美国摇滚乐队Redbone演唱。这首歌曲于1974年发行,被收录在他们的专辑《Wovoka》中。歌曲以放克曲风为主,旋律活泼,曲调悠扬,歌词朗朗上口,深受歌迷喜爱。…

    2023-06-29 07:47:31
    0 16 18
  • css预编译器: center;}

    CSS预编译器是一种用于构建CSS的工具,它可以将CSS代码转换为更易于管理和维护的格式。它们可以使CSS代码更加灵活,更易于重用,并且可以帮助开发人员更轻松地组织和管理CSS代码。…

    2023-04-30 05:19:08
    0 40 96
  • python中predict函数参数:如何使用Python的predict函数进行机器学习预测

    示例示例predict函数是scikit-learn中的一个函数,用于预测新样本的输出结果。参数:…

    2023-03-30 08:03:12
    0 66 46
  • canvas 官网Bring Your Ideas to Life with Creative Artwork

    Canvas 官网是一个用于创建图形的 HTML5 API,它可以在浏览器中使用 JavaScript 来绘制 2D 图形。它提供了一个可以在网页上绘制图形的强大工具,可以用来创建动画、游戏、数据可视化等。…

    2023-02-28 09:52:08
    0 43 33
  • qt creator快速入门 第3版 pdf从零开始

    Qt Creator快速入门第3版是一本关于Qt Creator的教程书,旨在帮助读者快速掌握Qt Creator的使用。书中介绍了Qt Creator的基本功能,如如何创建项目、编辑代码、调试代码以及创建应用程序等等。书中还提供了一些实例代码,帮助读者更好地理解Qt Creator的用法。…

    2023-05-16 03:03:33
    0 98 50
  • cherry键盘win键不能用:解决Cherry键盘Win键无法使用的措施

    如果您的cherry键盘win键不能用,可能是由于系统设置问题导致的。下面提供一些代码,可以帮助您解决这个问题:打开“控制面板”,然后点击“硬件和声音”,打开“键盘”选项卡。…

    2023-08-27 03:36:33
    0 30 22
  • certificate意思一步一步指南

    示例示例是一种用于证明某个人或机构拥有某种资格或资质的文件。它可以是一种认证,也可以是一种奖励或认可。代码示例:…

    2023-09-14 15:01:58
    0 89 10
  • win10系统ctrl加c不能复制:解决win10系统下Ctrl+C不能复制的问题

    解决方案解决方案答:可能是由于系统快捷键被修改所导致的,可以尝试恢复系统默认快捷键;…

    2023-04-15 00:45:32
    0 13 82

发表评论

登录 后才能评论

评论列表(59条)