问题标签 [imperative-programming]

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.

0 投票
4 回答
70 浏览

language-agnostic - 声明和状态

“声明”一词以“状态”一词开头,这是否有更深层次的含义,或者这只是一个奇怪的巧合?请注意,英语不是我的母语,所以答案对你来说可能很明显,但对我来说不是;)

0 投票
2 回答
45 浏览

database - Does anyone else think instance variables are problematic in database-backed applications?

It occurs to me that state control in languages like C# is not well supported.

By this, I mean, it is left upto the programmer to manage the state of in-memory objects. A common use-case is that instance variables in the domain-model are copies of information residing in persistent storage (i.e. the database). Clearly this violates the single point of authority principle, and "synchronisation" has to be managed by the developer.

I envisage a system where instead of instance variables, we have simple public access/mutator methods marked with attributes that link them to the database, and where reads and writes are mediated by a framework that decides whether to hit the database. Does such a system exist?

Am I completely missing the point, or is there some truth to this idea?

0 投票
1 回答
92 浏览

silverlight - 声明式/命令式交叉

我正在寻找一种方法来获得对通过 XML 实例化的类的引用,但我需要在命令式代码中引用它。我通常通过控件的数据上下文来执行此操作,但在这种情况下,用户控件没有对我需要的类的声明性引用。

我知道我已经看到了如何获得对通过 User.Resources 或 Application.Resources 实例化的类的引用 - 我似乎无法将正确的关键词放在一起并找到一个例子!

R

0 投票
2 回答
198 浏览

programming-languages - 对 FP 着迷,但仍然认为势在必行,我如何看待功能性?

像大多数人一样,我开始并且仍然做了很多命令式代码(主要是 Java、Ruby、Javascript)。

我从来都不是 OO 的忠实拥护者,要么是因为我从来没有正确理解它,要么是因为我不认为 OO。

通过 javascript,传递函数、闭包等,我第一次看到了 FP。从那时起,我就爱上了 FP。

最近,我对 Clojure(可能是 Scala)产生了兴趣,有朝一日甚至可能会尝试一下 Haskell。我喜欢我在函数式方法中看到的东西,但我如何看待函数式?在过去的 3-4 年里,我一直在做必要的事情,我的大脑在解决问题时倾向于认为是必要的。

我怎样才能忘记命令式风格(我需要吗?)并更多地思考功能?

0 投票
9 回答
2096 浏览

haskell - 使用 break-s/continue-s 将命令式控制流转换为 haskell

考虑以下命令式代码,它在 3 位数字的乘积中找到最大的回文数(是的,这是“[18 世纪杰出数学家] 项目”网站的第一个任务):

当我目前正在学习 Haskell 时,我的问题是,你如何将这个(以及基本上任何包含比普通迭代更复杂的东西的命令式构造,例如中断、继续、临时变量和所有这些)翻译成 Haskell?

我的版本是

但这看起来我们仍然处于势在必行的丑陋之城。

那么你有什么建议,处理这种情况的方法是什么?

0 投票
6 回答
1781 浏览

algorithm - 有没有比命令式算法更快的函数式算法?

我正在寻找一种比命令式更快的函数式算法(或这种算法的参数)。

我喜欢函数式代码,因为它比命令式挂件更具表现力,而且更容易阅读。但我也知道这种表现力会消耗运行时开销。并不总是由于尾递归之类的技术 - 但它们通常更慢。

在编程时,我不考虑功能代码的运行时成本,因为现在 PC 速度非常快,并且开发时间比运行时更昂贵。此外,对我来说,可读性比性能更重要。尽管如此,我的程序足够快,所以我很少需要以命令的方式解决问题。

有些算法在实践中应该以命令式的方式实现(如排序算法),否则在大多数情况下它们太慢或需要大量内存。相比之下,由于像用函数式语言编写的解析器这样的模式匹配整个程序之类的技术,可能比用命令式语言编写的程序快得多,因为编译器可以优化代码。

但是是否有任何算法在函数式风格上更快,或者是否有可能设置这种算法的参数?

0 投票
4 回答
146 浏览

c - 来自 OOP 背景,有哪些 C 程序/库可以帮助我获得“C 方式”?

我从事 OOP(C++/Java/PHP/Ruby)已经有很长时间了,真的很难想象大型程序和库(如 Linux 或 Apache)是如何完全以命令式风格编写的。我可以查看哪些小型开源 C 项目以了解 C 中的工作方式?

如果项目托管在 GitHub 上,则可以加分。

0 投票
3 回答
18678 浏览

haskell - 为什么 Haskell(有时)被称为“最佳命令式语言”?

(我希望这个问题是关于主题的——我尝试寻找答案,但没有找到明确的答案。如果这恰好是题外话或已经回答,请适度/删除它。)

我记得有几次听到/读过关于 Haskell 是最好的命令式语言的半开玩笑的评论,这当然听起来很奇怪,因为 Haskell 通常以其功能特性而闻名。

所以我的问题是,Haskell 的哪些品质/特性(如果有的话)有理由证明 Haskell 被认为是最好的命令式语言——或者它实际上更像是一个笑话?

0 投票
2 回答
1359 浏览

algorithm - 解释解决“最长递增子序列”问题的算法

在过去的两个小时里,我一直试图理解这个算法,但似乎无法理解。有人可以用易于理解的方式解释吗?

0 投票
1 回答
100 浏览

functional-programming - 所谓的赋值语句等价的表达式是什么?

在命令式编程中,使用语句,您可以执行以下操作:

我一直在想,表达式中的等价物应该是这样的:

这是用屠宰的python编写的,但这没关系,它应该说明我的意思。它不会更改程序中变量的状态(然后永远保持更改),而是在块范围内更改该范围内的任何表达式。

这种东西可能有一个名字。我不知道任何纯函数式语言,但我想这种事情对于在不存在赋值语句时计算临时值非常有用。有谁知道它叫什么,内置了哪些语言,以及在哪里可以找到有关它的更多信息?