问题标签 [computer-science]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
computer-science - 向量和层数据结构
我正在处理一些让我感到困惑的代码,我想知道我是否只是不了解数据结构。我正在使用的数据使用矢量和图层。我相信向量只是一行数据,但我不确定。
您可以提供或指出我使用这些信息的任何信息都会非常有帮助。
recursion - 从递归到迭代的方法
我在多年的编程中使用了很多递归来解决简单的问题,但我完全意识到有时由于内存/速度问题您需要迭代。
因此,在很久以前的某个时候,我去尝试查找是否存在将通用递归方法转换为迭代的任何“模式”或教科书方法,但一无所获。或者至少我记得没有任何帮助。
- 有一般规则吗?
- 有“模式”吗?
computer-science - 在线计算机科学文章存储库?
当我需要一些复杂的算法时,我首先检查互联网上是否已经发布了任何相关内容。10 次中有 10 次我会发现有人已经想出了一个比我想象的更聪明的解决方案。
除了通用的谷歌搜索,我使用:
- Citeseer 有很多来自大学的优秀理论报告
- Dobb 博士的门户网站比 Citeseer 更实用,但通常过于针对特定技术或语言
- Arxiv更理论上包含草稿和预印本(以防万一我绝望:))
我还发现J.UCS(通用计算机科学杂志)包含一些有趣的文章(但我并没有真正使用我在那里找到的任何信息)。
你知道还有什么地方可以免费搜索和阅读好的 CS 文章吗?
testing - 什么是代码覆盖率,你如何衡量它?
什么是代码覆盖率,你如何衡量它?
我被问到这个关于我们自动化测试代码覆盖率的问题。似乎在自动化工具之外,它更像是艺术而不是科学。是否有任何关于如何使用代码覆盖率的真实示例?
apache-flex - 这在计算机科学中叫什么?
许多编程语言和框架确实/允许/需要一些我似乎找不到名称的东西,即使计算机科学中可能有一个。他们基本上做的是按名称绑定到变量/对象/类/函数。
弹性示例(“selectAll()”):
配合示例(“价格”):
Java 示例(“Foo”):
还有很多其他的例子。你明白了。令我困扰的是,实际上没有办法在编译时验证这一点,而且 IDE 在代码完成、导航和重构方面也无能为力。但这不是重点。
我的问题是,这叫什么?我不认为它是其中之一:动态绑定,名称绑定,反射
更新:不,这不是一个测验,如果听起来像一个,对不起。对于编程来说,这只是“命名那首歌”的问题。
更新:有帮助的答案:
- 来自 Tim Lesher:它被称为“后期绑定”、“动态绑定”或“运行时绑定”。它通过字符串绑定的事实只是一个实现细节......
- 来自 Konrad Rudolph:……这只是解释器的输入。
更新:正如人们正确指出的那样,一些示例是后期绑定,一些是反射,一些是运行时评估(解释)等。但是,我得出结论可能没有名称可以描述它们。这只是一堆确实有共同点的例子,但不足以给它命名。我喜欢“一切都是字符串”的答案,但即使它很有趣,它也不能完全做到公正。
computer-science - 是否有任何程序可以绘制和测试状态机、图灵机等?
当我感恩节后回到学校时,我将参加 CS 理论课程,涵盖确定性和非确定性有限状态机、图灵机、下推自动机和其他一些内容等主题。但是,我还没有找到一个好的应用程序可以生成它们的可视化表示以及测试它们的工作方式(通过/失败等)。到目前为止我发现的最好的是jFlap,我发现它相当尴尬。
recursion - 递归和大 O
我一直在完成最近的计算机科学作业,涉及递归和大 O 表示法。我相信我非常了解这一点(当然,当然不完美!)但是有一个问题特别给我带来了最多的问题。奇怪的是,看着它,它看起来是作业中最简单的一个。
使用 big-Oh 表示法提供最佳增长率来解决以下递归?
T(1) = 2
T(n) = 2T(n - 1) + 1 对于 n>1
选择是:
- O(n log n)
- O(n^2)
- O(2^n)
- O(n^n)
我知道大 O 用作上限,用于描述该程序或进程将花费的最多计算量或最长运行时间。我觉得这个特定的递归应该是 O(n),因为对于每个 n 值,递归最多只发生一次。由于 n 不可用,它要么比这更好,O(nlogn),要么更糟,成为其他三个选项。
所以,我的问题是:为什么不是 O(n)?
c - 函数指针、闭包和 Lambda
我刚刚开始学习函数指针,当我阅读有关该主题的 K&R 章节时,我首先想到的是,“嘿,这有点像一个闭包。” 我知道这个假设在某种程度上是根本错误的,在网上搜索后,我并没有发现任何对这种比较的分析。
那么为什么 C 风格的函数指针与闭包或 lambda 完全不同呢?据我所知,这与函数指针仍然指向已定义(命名)函数的事实有关,而不是匿名定义函数的做法。
为什么将函数传递给在第二种情况下被视为更强大的函数,在这种情况下,它没有命名,而不是在第一种情况下,它只是一个普通的,正在传递的日常函数?
请告诉我如何以及为什么将两者如此密切地比较是错误的。
谢谢。
functional-programming - 什么是参照透明度?
参考透明度一词是什么意思?我听说它被描述为“这意味着你可以用 equals 替换 equals”,但这似乎是一个不充分的解释。
computer-science - 老年人计算机科学
当它是带有类的 C 时,我学习了 C++。我发现自己越来越不喜欢 XML 和垃圾收集等新技术。另一方面,我发现了像 Lua 和 Python 这样的脚本语言。而且我发现自己更喜欢 C++ 的混合环境,具有确定性内存控制、嵌入式脚本语言、垃圾收集和所有相关功能。
我的问题是,在尝试学习这些语言时,我发现自己遇到了一些我不熟悉的术语:lambdas、闭包等。
有哪些在线资源可供老年人了解这些内容?