绘图程序

2024-01-21

我倾向于成为一个视觉思考者。因此,如果我可以想象程序中的数据流,那么我就可以更好地理解其中发生的事情,而不是阅读正在发生的事情的文本故事(伪代码)。

有没有一种方法可以直观地表示变量和对象流经函数以及被函数更改的方式?最好是在小规模、单个函数内部和更大范围的整个程序中工作的东西。

例如,英语课用于教授句子图解。电气工程师有电路图。计算机科学中有相应的吗?


我是一个haskeller,所以我会代表pure函数式编程。我首先想到的是交换图 https://en.wikipedia.org/wiki/Commutative_diagram。这些可以用来描述功能和结构如何相互作用;然而,他们宁愿定义不变量/定律而不是行为。

在考虑 lambda 演算(或基于其的高级语言)的求值时需要了解的另一件事是表达式图,如图简化 https://en.wikipedia.org/wiki/Graph_reduction。它们可以让你看到你的表达结构,包括分享。当然,只有代码是纯粹的,即没有发生突变,这才有意义。

第三种图表有助于可视化数据如何通过函数传递,它是不同类型的数据流图,例如用于arrows https://www.haskell.org/arrows/(它也可以用于正常功能,因为(->)是一个箭头),或 SICP 的“Henderson 图”(参见图 3.31 及其上面的段落3.5.2 无限流 https://sarabander.github.io/sicp/html/3_002e5.xhtml#Infinite-Streams)。这些显示了各个功能如何“插入在一起”。另一个角度是用于绘制流处理/管道和过滤器样式的图表,例如大理石图 http://rxmarbles.com/,它更关注时间概念(并且与箭头图相反,它确实代表个体值)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘图程序 的相关文章

  • 如何在 Haskell 中建模类层次结构?

    我是一名 C 开发人员 来自面向对象的世界 我从接口 类和类型层次结构的角度开始思考 由于 Haskell 缺乏面向对象 有时我发现自己陷入困境 无法想出用 Haskell 建模某些问题的方法 如何在 Haskell 中对涉及类层次结构的现
  • 为什么不是 (20 >) 。长度 。取 10 === const True

    tl dr 事实难道不是这样吗20 lt length take 10 whatever需要whatever成功地对列表进行模式修补 至少 or 缺乏 懒惰 或者 换句话说 为什么不 20 gt length take 10 const T
  • 如何解释方案表达式 '(a 'b)

    a b 给出答案 a b 当 a 没有绑定 未加引号 时 这是如何工作的 这就是我们计算表达式时发生的情况 a b gt a b The quote 是简写quote http docs racket lang org guide quot
  • 如何使用非类型化语言中的 Reader Monad 在整个组合中隐式地线程化参数?

    我知道裸读者单子仅包含两个功能 const chain g gt f gt x gt f g x x const of x gt gt x 但我对它如何工作或如何应用没有任何直觉 知道 is 用于在整个组合中隐式地线程化参数并没有多大帮助
  • 如何在 React Native ListView 中将项目居中?

    我试图在选择一个项目时将其置于水平列表视图的中心 我当前的策略是首先测量项目并滚动到视图中引用项目的 x 坐标 目前 每当我按下某个项目时ListView滚动到最后x 538 有没有更简单的方法来实现这一点 同时保持代码无状态 功能 con
  • 如何在函数式编程中为AST节点生成稳定的id?

    我想将一个特定的 AST 节点替换为另一个节点 并且这个替换的节点是由交互式用户输入指定的 在非函数式编程中 可以使用可变数据结构 并且每个AST节点都有一个对象引用 因此当我需要引用特定节点时 我可以使用这个引用 但在函数式编程中 使用I
  • Haskell 将两个列表中不同索引处的元素组合起来

    对这个糟糕的标题表示歉意 我不太确定如何用语言描述它 但这就是我的意思 如果您知道更好的表达方式 请告诉我 假设我有 2 个长度相等的列表 a b c x y z 我想创建列表 a y z b x z c x y 本质上 对于 list1
  • UML状态图中守卫和事件的区别

    我以为我可以区分event and guard 但我遇到了一个与守卫类似的事件 counter gt 4 pin is high switch on event 我将变量计数器从小于 4 的某个值更改为大于 4 的值作为事件 这是否意味着事
  • “foop”:命名约定?它是“foo”的辅助递归函数;后缀“p”是什么意思?

    我遇到了以下代码片段 函数定义 choose x xs choosep x xs where choosep x x choosep x x choosep x xs choosep x xs in 柯里编程语言 http en wikip
  • F# 编码练习

    我一直在 Visual Studio 2010 中涉足 F 我是一名在 C 和 Java 等面向对象语言方面拥有更多代码 架构设计经验的开发人员 为了扩展我的技能并帮助做出更好的决策 我正在尝试使用不同的语言来做不同的事情 特别是掌握使用函
  • OCaml 作为 C 库,hello world 示例

    我希望通过 C 调用 OCaml 代码 方法是将 OCaml 编译为包含 C 接口的静态或共享库 这一页 https caml inria fr pub docs manual ocaml intfc html似乎解释了如何为 OCaml
  • 减少/折叠幺半群列表,但减少器返回任一

    我发现自己遇到过几次这样的情况 我有一个减速器 组合 fn 如下所示 def combiner a String b String Either String String a b asRight String 它是一个虚拟实现 但 fn
  • 将不同的 grViz 组合成一个图

    我想结合不同的DiagrammeR绘制成一个图形 生成的图如下例所示 library DiagrammeR pDia lt grViz digraph boxes and circles a graph statement graph ov
  • std::bind 重载解析

    下面的代码工作正常 include
  • F# 检查列表是否为空

    作为 F 新手 我正在尝试实现一个简单的函数 该函数将索引和列表作为参数 然后返回给定索引的列表值 let rec getElementAtIndex index int list a list match index list with
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • 你能在 scala 中使用 varargs 柯里化一个函数吗?

    我正在考虑如何用可变参数柯里化一种方法 然后我意识到我什至不知道如何去做 理想情况下 它应该让您可以随时开始使用它 然后以可迭代结束 def concat strs String strs mkString val curriedConca
  • 构造微积分中的“Refl”东西?

    在语言中 例如Agda Idris or Haskell对于类型扩展 有一个 键入类似于以下内容的内容 data a b where Refl a a a b意思是a and b是相同的 这样的类型可以定义在结构演算 https en wi
  • 使用 RxJava 限制吞吐量

    我现在遇到的情况很难解释 所以我会写一个更简单的版本来解释这个问题 我有一个Observable from 它发出一系列由ArrayList文件数量 所有这些文件都应上传到服务器 为此 我有一个函数可以完成这项工作并返回一个Observab
  • 如何在对象的多个方法上使用 functools.partial 并无序冻结参数?

    我发现 functools partial 非常有用 但我希望能够无序地冻结参数 您想要冻结的参数并不总是第一个 并且我希望能够将其应用于多个一次在类上使用方法 以创建一个代理对象 该对象具有与底层对象相同的方法 除了它的一些方法参数被冻结

随机推荐

  • 使用中的 Gunicorn 连接:('0.0.0.0', 5000)

    我今天下午安装了 redis 它导致了一些错误 所以我卸载了它 但是当我使用以下命令启动应用程序时 此错误仍然存 在foreman start 关于修复有什么想法吗 foreman start 22 46 26 web 1 started
  • .net 4.0 中并行网络爬虫的最佳实践

    我需要通过代理下载很多页面 构建多线程网络爬虫的最佳实践是什么 Parallel For Foreach 是否足够好 还是对于繁重的 CPU 任务更好 您对以下代码有何看法 var multyProxy new MultyProxy mul
  • 如何在 IBM Worklight 中设置 MySQL

    我刚刚了解了IBM Worklight 我想知道如何设置和配置MySQL数据库 我已经设置了Worklight Adapter 但是 我不知道如何用MySQL创建数据库 您应该通过IBM Worklight 入门 http www ibm
  • Python+BeautifulSoup:从网页中抓取特定的表

    我正在尝试从以下位置抓取特定的表格 这个网页 http biz yahoo com c s html 我想要抓取的是股票信息 日期 公司名称 比例以及是否可选 这是我到目前为止所拥有的 from bs4 import BeautifulSo
  • 在模糊功能上获取 jquery 自动完成中的选定值

    我想要具有自动完成功能 当存在模糊事件时 文本框应填充值列表作为第一项 我希望具有与此链接中实现的功能相同的功能link http www redbus in 我有下面的代码 它填充在选项卡和输入键上 但不知道如何在模糊事件上实现相同的功能
  • .net4 中仍然存在内存泄漏 - 将内存 BitmapImage 绑定到 Image-Source

    我知道过去曾在这里提出过非常类似的问题 但都没有解决我的问题 我将内存中的图像加载到 BitmapImage 中 private static BitmapImage LoadImage byte imageData if imageDat
  • mini-css-extract-plugin 模块的 chunkFilename 的用途是什么?

    我现在使用 mini css extract plugin 模块 并设置其 chunkFilename 值并确保值 id css 通过运行它 但是 我看不到该文件 参考如下 https webpack js org plugins mini
  • JavaScript 新函数作用域 ReferenceError

    有什么办法可以让下面的代码工作吗 function var n abc new Function return alert n 如果我在浏览器中运行代码结果是 未捕获的引用错误 n 未定义 另外 我还需要在 新函数 中访问一些其他变量 例如
  • 将图像中的所有白色像素转换为黑色像素

    我有这张图片rand walk 2 png 我想将所有白色像素转换为黑色像素 这样就有了一张图片红色随机游走在黑色背景上 这意味着我不能仅仅反转图像的颜色 我当前的代码只是找到白色像素并将它们设置为黑色 from PIL import Im
  • ADO.NET 中具有 GROUP BY 功能的聚合函数

    这是一个更直接的问题 源于较早的问题我之前有过更普遍的问题 https stackoverflow com questions 828356 allowing a user to create a custom query of a tab
  • 带有自定义图块的动态谷歌地图可防止重复平移

    我有一个动态图块集 我不想允许平移超出其范围 下面的代码让我很接近 但用户仍然可以在严格边界之外水平滚动 因为它使用地图中心进行比较 var strictBounds new google maps LatLngBounds new goo
  • 无法授予对证书、标识符和配置文件的访问权限

    我购买了一个苹果开发者帐户 我正在尝试添加一个用户作为管理员并授予对证书 标识符和配置文件的访问权限 但该复选框已禁用 我无法勾选它 我认为您已经创建了 Apple 开发者帐户个人 要将其他用户添加为具有 证书 标识符和配置文件 访问权限的
  • Rails,Ruby,如何对数组进行排序?

    在我的 Rails 应用程序中 我正在创建一个数组 如下所示 messages each do message list lt lt id gt message id title gt message title time ago gt m
  • WIF滑动会话重新认证

    我已经在依赖方应用程序中实现了滑动会话 如中所述WIF 4 5 的滑动会话 http www cloudidentity com blog 2013 05 08 sliding sessions for wif 4 5 就目前而言 这很有效
  • 创建带有任何参数的 std::functions 的 unordered_map ?

    我正在尝试创建一个无序地图std functions 其中键是一个字符串 您将在其中查找要调用的函数 而该函数就是值 我写了一个小程序 include
  • 多边形不是封闭的

    我注意到 当使用绘图管理器绘制多边形时 它们没有关闭 即最后一个点到第一个点没有坐标 我知道 Google Maps API v3 会自动关闭多边形 但 Google Earth Google Static Maps API 或任何其他软件
  • 在 iOS 8 框架中使用类别

    我正在尝试使用框架在应用程序和扩展之间共享一些代码 大多数情况下 这是有效的 但我有几个类别似乎无法在扩展中正确加载 例如 我在 NSString 上有一个类别来反转目标字符串 但是当我尝试在扩展中使用该选择器时 我的代码会陷入 无法识别的
  • 在 JS 中格式化 Date()

    我有脚本然后需要获取这种格式的日期和时间08 25 2017 1 54 PM 我为日期编写代码 这里是 document ready function var dateNow new Date var dd dateNow getDate
  • 如何在React中给组件添加滚动条?

    我在 SPA 中使用带有 3 列的网格系统 左右列表包含占用 100 视口高度的组件 中间列包含一个长列表 并且想在中间组件中添加一个滚动条 我尝试用几个不同的滚动条组件编写中间组件 但没有任何效果 我最终总是看到一个主页滚动 当进一步向下
  • 绘图程序

    我倾向于成为一个视觉思考者 因此 如果我可以想象程序中的数据流 那么我就可以更好地理解其中发生的事情 而不是阅读正在发生的事情的文本故事 伪代码 有没有一种方法可以直观地表示变量和对象流经函数以及被函数更改的方式 最好是在小规模 单个函数内