关于标量和向量

发布于 2022-08-18 10:31:30 字数 400 浏览 17 评论 9

在编程语言中,标量和向量这两个概念在funtional语言中很容易体现

变量为标量,而函数为向量(类型由data (->)定义的)

问一下:

在imperative语言中这种理解同样适用吗?(变量为标量,而函数为向量?)

以下是我以前发的帖子的回答:

http://bbs.chinaunix.net/viewthread.php?tid=1289582

[ 本帖最后由 izhier 于 2009-4-26 14:31 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

谜兔 2022-08-22 07:44:25

Haskell 中的函数是 first class 的,那函数是有值的
函数接受一个参数经过计算返回我们想要的结果

   f(x)
x----->y

难道 f 这不是 x -> y 的向量 ?

[ 本帖最后由 izhier 于 2009-4-26 10:49 编辑 ]

迷迭香的记忆 2022-08-22 06:31:46

数学中,把
只有大小但没有方向的量叫做数量(或纯量),物理中常称为标量。
既有大小又有方向的量叫做向量(亦称矢量)。

但不知编程语言中是不是这样定义的?

不寐倦长更 2022-08-22 05:26:55

原帖由 flw 于 2009-4-26 09:17 发表

啥叫向量?啥叫标量?

首先搞明白是什么,
然后再来搞像不像的问题。

agreed.

如日中天 2022-08-22 04:52:49

原帖由 izhier 于 2009-4-25 22:45 发表
迷惑了,我想确定一下:
Haskell 中的函数是向量吗 ?

那编程语言中的标量和向量是如何定义的呢 ?

啥叫向量?啥叫标量?

首先搞明白是什么,
然后再来搞像不像的问题。

﹉夏雨初晴づ 2022-08-22 02:05:54

原帖由 MMMIX 于 2009-4-25 22:22 发表
嗯。老实说,这些东西对最开始学习 functional programming 并没有什么帮助,还可能导致你使用/误用一些术语,把你自己转晕。。。

现在已经晕了

温柔女人霸气范 2022-08-21 16:45:40

迷惑了,我想确定一下:
Haskell 中的函数是向量吗 ?

那编程语言中的标量和向量是如何定义的呢 ?

じее 2022-08-21 13:35:50

原帖由 izhier 于 2009-4-25 22:14 发表
我看到上面的一段话,认为Haskell中的函数像一个向量
难道是我理解有误 ?

嗯。老实说,这些东西对最开始学习 functional programming 并没有什么帮助,还可能导致你使用/误用一些术语,把你自己转晕。。。

痞味浪人 2022-08-19 16:36:30

在这个帖子:
http://bbs2.chinaunix.net/thread-1415220-1-1.html
二楼下面

  1. 从抽象的效果来说,他们是同样的。但是从语法上实在是太累赘,Combinator本身抽象的就是算法或者说是业务逻辑,而承载逻辑的最基本单元函数却不是第一等的公民,只能负载在类上进行传递。从OO来说的确不善于抽象逻辑和算法。以前 STL之父说过,不是所有的东西都是对象,算法就不是对象。STL中的用functor抽象算法和FP有些像,但是还只是东施效颦罢了。FP并不长于运算,而是长于逻辑的推导。这种推导,在数学上称为算子空间,什么是算子和算子空间呢?我们数学中知道,f(x),x有定义域 f(x)有值域。而我们把x 的定义域的概念进行扩展,我们把每个函数看成一个集合中的元素。然后将所有算子的集合为抽象空间或者函数空间(也就是说值域这个集合中的每个元素都是一个函数).例如上面的各种各样的term和next就是一系列的算子,他们的集合就叫做抽象空间。一个算子可以看作这个空间里面的一个点,算子的组合即可以看作函数空间中的向量组合。在数学里我们空间的两个点表示a: [x1,y1,z1],b:[x2,y2,z2],他们的组合就成为一个线段,如果有这个线段产生方向就成为一个a->b的向量。因为算子和算子之间也是有方向的,最简单就是运算顺序。那么算子和算子之间就是算子向量。由于算子所作用的集合并没有维数的限制,在函数空间基础上所研究出来算子的各种性质,成为处理用有穷维或者线性空间逼近无穷维集合问题的有力武器。因此我们可以看到其实算子空间本身具有的性质就是N维正交。也就是说每个算子都是独立互不干扰的。他不会有OO那样牵扯不清的各种问题。所以我经常说FP的研究的就是算法的算法。这只是一个简单的实现。Combinator 可以做很多你都想不到的事情,例如最著名的Y Combinator和不动点。这个东西可以说是FP中最精彩的一笔,限于篇幅以及鉴于它让人抓狂的程度我是不准备介绍他们了。

复制代码
我看到上面的一段话,认为Haskell中的函数像一个向量
难道是我理解有误 ?

[ 本帖最后由 izhier 于 2009-4-25 22:15 编辑 ]

悍妇囚夫 2022-08-19 04:57:48

原帖由 izhier 于 2009-4-25 19:06 发表
在编程语言中,标量和向量这两个概念在funtional语言中很容易体现

变量为标量,而函数为向量(类型由data (->)定义的)

这你从什么地方听来的?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文