我真的没有得到 lambda表达式.虽然他们自ALGOL时代就已存在,但直到最近,当Python和Ruby变得非常受欢迎时,我才开始听到它们.既然C#具有=>语法,那么我的世界(.NET)中的人们越来越多地讨论lamdba表达式.
我已经读过关于lambda演算的维基百科文章,但我不是一个真正的数学家.从实际角度来看,我并不是真的理解它.我什么时候会使用lambda表达式?为什么?我怎么知道这应该是我应该做的?
您能否以前后格式展示如何使用lambda表达式解决问题的示例?任何命令式语言都可以,但C#对我来说最容易理解.
如果我没记错的话,“懒惰的命令式编程语言”的概念很有意义。
例如,我设想以下代码应使程序打印“ 7”
a <- 1
b <- a+5
a <- 2
print([b])
Run Code Online (Sandbox Code Playgroud)
而以下代码应使程序打印“ 6”
a <- 1
b <- [a+5]
a <- 2
print(b)
Run Code Online (Sandbox Code Playgroud)
并且以下代码应使程序打印字符串“ a + 5”
a <- 1
b <- a+5
a <- 2
print(b)
Run Code Online (Sandbox Code Playgroud)
这个想法是[..]通过使用每个变量的当前值执行评估来使表达式变平。
题。是否存在惰性命令式编程语言,如果不存在,为什么不呢?有什么特殊原因使它们永远不存在?
假设我在Java中使用不可变数据结构编写程序.即使它不是一种功能语言,它也应该能够并行执行.如何确保使用处理器的所有内核执行程序?计算机如何决定可以并行运行哪些代码?
PS我问这个问题的意图不是要找出如何并行化java程序.但要知道 - 计算机如何并行化代码.它可以在用非功能语言编写的功能程序中完成吗?
我时不时地听到有人说"函数式编程语言更具数学性".是这样吗?如果是这样,为什么以及如何?例如,Scheme比Java或C更具数学价值吗?还是哈斯克尔?
我无法准确定义什么是"数学",但我相信你可以得到这种感觉.
谢谢!
我正在阅读一篇关于声明性编程语言的文章.
如果我不理解这种类型/范式的编程语言的质量,并且它与命令式语言形成鲜明对比,那么我是否应该阅读这种类型的编程语言(如Haskell)中的编程,然后再阅读该文章?
haskell imperative-languages imperative-programming declarative-programming