问题标签 [imperative-languages]

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 投票
6 回答
6861 浏览

delegates - 你能解释一下 lambda 表达式吗?

我并没有真正得到lambda 表达式。虽然它们从 ALGOL 时代就已经存在,但直到最近 Python 和 Ruby 变得非常流行时,我才开始听说它们。现在 C# 有了=>语法,我的世界 (.NET) 中的人们越来越多地谈论 lamdba 表达式。

我已阅读有关 lambda 演算的 Wikipedia 文章,但我并不是真正的数学专家。从实际的角度来看,我并没有真正理解它。我什么时候使用 lambda 表达式?为什么?我怎么知道这是我应该做的?

您能否以前后格式展示如何解决 lambda 表达式问题的示例?任何命令式语言都可以,但 C# 对我来说最容易理解。

0 投票
5 回答
720 浏览

java - 用非函数式语言编写函数式程序

假设我使用 Java 中的不可变数据结构编写了一个程序。即使它不是函数式语言,它也应该能够并行执行。如何确保我的程序正在使用我的处理器的所有内核执行?计算机如何决定哪些代码可以并行运行?

PS我问这个问题的目的不是找出如何并行化Java程序。但要知道 - 计算机如何并行化代码。它可以在用非功能语言编写的功能程序中完成吗?

0 投票
5 回答
1055 浏览

oop - 函数式编程是否被认为更“数学”?如果是这样,为什么?

时不时地,我听到有人说“函数式编程语言更数学”之类的话。是这样吗?如果是这样,为什么以及如何?例如,Scheme 是否比 Java 或 C 更具数学性?还是哈斯克尔?

我无法准确地定义什么是“数学”,但我相信你能体会到。

谢谢!

0 投票
2 回答
75 浏览

compiler-construction - 确定自定义语言的类型

我正在考虑专门用于图形的小型语言,它可以提供很多功能来操作图形等。

所以当我思考语言的语法时,我读到了函数式和“显而易见的”命令式范式。一个人如何决定哪种语言风格会更好?哪一个更适合我的用例?我会很感激有一些很好的理由和解释的答案。

编辑:至于这种语言的受众:我相信没有编程经验的非程序员/研究人员仍然能够使用图表,并从中受益。

编辑:如果你觉得这个问题没有用,你可以投反对票,但请添加评论,说明你为什么觉得它值得。它可能会帮助我走很长的路。

0 投票
1 回答
126 浏览

language-agnostic - 语言实现与编译器/解释器向金属发出指令的距离有多远

我不想将此作为“有人在 2 年内击败我的问题”的“答案”, 所以我提出了一个新问题。从那里的答案中可以看出(参见 N. Ramsey,他写道:

“...但是,如果您查看麻省理工学院 Arvind 教授的开创性工作,他的团队设计并构建了数据流机器,其中基本计算操作在本质上更具声明性......”

裸机指令可能是声明性的或非强制性的。

有没有人觉得在这个方向上可以走多远?编译器必须总是将函数式语言转换为命令式语言吗?是否存在支持此功能的硬件?

我只是好奇- 一直在看前卫。朗。趋势,我终于想知道没有可变状态(例如)的真正含义是什么。

0 投票
5 回答
2069 浏览

haskell - 声明性语言

我正在阅读一篇关于声明式编程语言的文章。

如果我不了解这种类型/范式的编程语言的质量并且它与命令式语言形成对比,我是否应该只阅读这种类型的编程语言(如 Haskell)的编程,然后再阅读那篇文章?

0 投票
2 回答
202 浏览

coq - ∀id1 id2 : id, {id1 = id2} + {id1 ≠ id2} 是什么意思?

我正在阅读软件基础书,在 Imp.v 文件中,有一个定理 eq_id_dec 的定义如下:

这个定理是否意味着对于任何类型为 id 的 id1 和 id2,id1=id2 和 id1!=id2 都不会发生?我不确定。

0 投票
3 回答
543 浏览

rust - 打印树 - 尝试访问字段,但未找到具有该名称的字段

我正在尝试编写我的第一个 Rust 程序。我想在屏幕上打印一棵简单的树,但我无法访问value属性,它说

错误 1 ​​尝试访问valuetype 上的字段Node,但找不到具有该名称的字段 c:\users\zhukovskiy\documents\visual studio 2013\Projects\rust_application1\rust_application1\src\main.rs 21 20 rust_application1

0 投票
0 回答
537 浏览

lazy-evaluation - 是否存在惰性命令式编程语言?如果不是,为什么不呢?

如果我没记错的话,“惰性命令式编程语言”的概念非常有意义。

例如,我设想下面的代码应该导致程序打印“7”

而下面的代码应该导致程序打印“6”

下面的代码应该导致程序打印字符串“a+5”

这个想法是[..]通过使用每个变量的当前值执行评估来展平表达式。

问题。惰性命令式编程语言是否存在,如果不存在,为什么不存在?有什么特别的原因使它们永远无法存在吗?

0 投票
1 回答
26 浏览

design-patterns - 将函数转换为表格查找是什么意思?

这段名为Don't fear the monad 的视频中,在05:0206:05之间,Brian Beckman 说:

每个命令式程序员都会经历这个阶段,学习可以用查找表来替换函数。通常,您这样做是为了提高性能。你想制作sin函数或cosine 函数,只需制作一个表格并在该表格中进行插值......每个人都学会了这个技巧。

我想知道他所说的这个技巧是什么意思,以及它如何提高性能。你能详细说明一下吗?

它只是意味着有某种外观Dictionary<TKey, Func<TInput, TReturn>>吗?