avatar
l*t
2
Senior ASIC Verification Engineer in Marvell Semiconductor:
Resposibilities include:
*Participate in early reviews of IP definition and architecture development
*Develop verification testplan for new design, build test bench, models,
test cases
*Interact with design team
*Perform rtl code coverage
Desired Skills & Experience:
*BS/MS degree in EE or CS with 5+ years of working experience in
Verification.
*Must have knowledge and experience of ASIC verification flows and
methodologies*Good Knowledge in languages relevant to the ASIC verification
process including Verilog,SystemVerilog, Unix Scripting, and C.
*Self-motivated, good communication skills and ability to excel in a team
environment.
*Experience in the serial bus such as PCIE/USB is a plus.
*Experience in gate level simulation/verification is a plus
Please send your resume to a******[email protected], thanks!
avatar
z*e
3
immutable讲的是func之间要immutable
内部无所谓,完全可以不控制
所以有个scope的问题
但是为什么func的参数需要immutable呢?
fp的zealot没有一个说得清楚的
都是各种大概念满天飞
甚至否定数学上变量存在的意义
为了自圆其说,笑死了
估计他们自己也都没有真的弄明白为什么要这样
fp只是很多人的一个虎皮而已
一旦撕下这个虎皮,你会发现
其实他根本就不明白为什么要用fp
这就是杀人游戏,你不说我什么都看不出来
你说得越多,破绽越多,就越能看明白你到底是不是懂
avatar
c*m
4
metabolomics, 职位要求和我的工作经验非常符合,希望能有在Novartis的同胞推荐,
请站内信联系,万分感谢
avatar
a*n
5


【在 l****8 的大作中提到】
: 如题
avatar
w*g
6
where does it locate?

development

【在 l**t 的大作中提到】
: Senior ASIC Verification Engineer in Marvell Semiconductor:
: Resposibilities include:
: *Participate in early reviews of IP definition and architecture development
: *Develop verification testplan for new design, build test bench, models,
: test cases
: *Interact with design team
: *Perform rtl code coverage
: Desired Skills & Experience:
: *BS/MS degree in EE or CS with 5+ years of working experience in
: Verification.

avatar
l*t
7
因为lambda里没有变量的位置啊。
你要想吧lambda写的像有变量很容易的。haskell的let,where够你用的。scala直接可
以定义val。当然,let,where的本质还是声明了一个匿名lambda传参。
你要想定义状态,那更完全没问题。用FP定义状态保证比你在过程里声明一堆var好用
维护的多。
如果你非要z=x; x=y;y=z;来做swap,没for(int i =0;)就不会写了。那还是别用fp了
avatar
l*1
8
那是必须的。
avatar
z*e
9
mutable var的存在会使得func变得不确定
这是唯一的原因
func的确定性会受到冲击
在多线程环境下就不安全了
这个其实对于随便一个语言来说都可以直接用
无论是不是fp,说这个东西跟fp不fp没关系

【在 l******t 的大作中提到】
: 因为lambda里没有变量的位置啊。
: 你要想吧lambda写的像有变量很容易的。haskell的let,where够你用的。scala直接可
: 以定义val。当然,let,where的本质还是声明了一个匿名lambda传参。
: 你要想定义状态,那更完全没问题。用FP定义状态保证比你在过程里声明一堆var好用
: 维护的多。
: 如果你非要z=x; x=y;y=z;来做swap,没for(int i =0;)就不会写了。那还是别用fp了
: ,

avatar
r*q
10
要的
avatar
p*2
11

我就说了,学习的是思想,大牛你还不同意。FP的思想可以用于OO。

【在 z****e 的大作中提到】
: immutable讲的是func之间要immutable
: 内部无所谓,完全可以不控制
: 所以有个scope的问题
: 但是为什么func的参数需要immutable呢?
: fp的zealot没有一个说得清楚的
: 都是各种大概念满天飞
: 甚至否定数学上变量存在的意义
: 为了自圆其说,笑死了
: 估计他们自己也都没有真的弄明白为什么要这样
: fp只是很多人的一个虎皮而已

avatar
z*e
12
好吧,当我把它肢解了之后,发现可以逐个吸收

【在 p*****2 的大作中提到】
:
: 我就说了,学习的是思想,大牛你还不同意。FP的思想可以用于OO。

avatar
p*2
13

没错。什么纯了都不好。

【在 z****e 的大作中提到】
: 好吧,当我把它肢解了之后,发现可以逐个吸收
avatar
d*r
14
记得以前王垠blog上讨论过这个
=================================================
http://www.douban.com/note/269210328/
其实要达到纯函数式语言的这种“纯”的效果,你根本不需要使用像 Haskell 这样完
全排斥“赋值语句”的语言。你甚至不需要使用 Lisp 这样的“非纯”函数式语言。你
完全可以用 C 语言,甚至汇编语言,达到同样的效果。
我只举一个非常简单的例子,如果你在 C 语言里面定义如下的“函数”。虽然函数体
里面含有赋值语句,它却是一个真正意义上的“纯函数”:
int f (int x) {
int y, z;
y = 2 * x;
z = y + 1;
y = z / 3;
return y;
}
这是为什么呢?因为它计算的是数学函数 (2x+1)/3 。你给它同样的输入,肯定会得到
同样的输出。函数里虽然对 y 和 z 进行了赋值,但这种赋值都是“局部”的,它不会
在函数里留下“状态”。所以这个函数虽然使用了被“纯函数程序员”们唾弃的“赋值
语句”,它仍然完全的符合“纯函数”的定义。
=================================================

【在 z****e 的大作中提到】
: immutable讲的是func之间要immutable
: 内部无所谓,完全可以不控制
: 所以有个scope的问题
: 但是为什么func的参数需要immutable呢?
: fp的zealot没有一个说得清楚的
: 都是各种大概念满天飞
: 甚至否定数学上变量存在的意义
: 为了自圆其说,笑死了
: 估计他们自己也都没有真的弄明白为什么要这样
: fp只是很多人的一个虎皮而已

avatar
p*2
15

这么说就SB了。

【在 d*******r 的大作中提到】
: 记得以前王垠blog上讨论过这个
: =================================================
: http://www.douban.com/note/269210328/
: 其实要达到纯函数式语言的这种“纯”的效果,你根本不需要使用像 Haskell 这样完
: 全排斥“赋值语句”的语言。你甚至不需要使用 Lisp 这样的“非纯”函数式语言。你
: 完全可以用 C 语言,甚至汇编语言,达到同样的效果。
: 我只举一个非常简单的例子,如果你在 C 语言里面定义如下的“函数”。虽然函数体
: 里面含有赋值语句,它却是一个真正意义上的“纯函数”:
: int f (int x) {
: int y, z;

avatar
l*y
16
这么说一点都不sb

【在 p*****2 的大作中提到】
:
: 这么说就SB了。

avatar
p*2
17

他这个不能保证纯。

【在 l*y 的大作中提到】
: 这么说一点都不sb
avatar
l*y
18
用local ariable就是纯的

【在 p*****2 的大作中提到】
:
: 他这个不能保证纯。

avatar
p*2
19

用local就纯?
FP是一种更高级的编程技术,C这么底层的根本不可能做到FP。

【在 l*y 的大作中提到】
: 用local ariable就是纯的
avatar
b*0
20
可是他说的是 达到pure的效果 也就是相同的输入一定能得到相同的输出..

【在 p*****2 的大作中提到】
:
: 用local就纯?
: FP是一种更高级的编程技术,C这么底层的根本不可能做到FP。

avatar
l*y
21
只是用c达到fp的一个方面

【在 p*****2 的大作中提到】
:
: 用local就纯?
: FP是一种更高级的编程技术,C这么底层的根本不可能做到FP。

avatar
N*K
22
swap 不用临时变量 怎么实现?
杂技演员 两个手里的东西 往天上一扔 然后互相换位置?
就算这样 这个“天”就是临时存储空间

【在 l******t 的大作中提到】
: 因为lambda里没有变量的位置啊。
: 你要想吧lambda写的像有变量很容易的。haskell的let,where够你用的。scala直接可
: 以定义val。当然,let,where的本质还是声明了一个匿名lambda传参。
: 你要想定义状态,那更完全没问题。用FP定义状态保证比你在过程里声明一堆var好用
: 维护的多。
: 如果你非要z=x; x=y;y=z;来做swap,没for(int i =0;)就不会写了。那还是别用fp了
: ,

avatar
c*o
23
没有mutable,为什么要swap?
有其他的方法做类似的事

【在 N******K 的大作中提到】
: swap 不用临时变量 怎么实现?
: 杂技演员 两个手里的东西 往天上一扔 然后互相换位置?
: 就算这样 这个“天”就是临时存储空间

avatar
a*e
24
这个例子只能说明 mutable by default 需要遵守一定规则 (使用 non-escaping 局部
变量)才能安全,想用它来例证 mutable by default 好?逻辑上讲不通。
为什么我说 non-escaping,因为如果使用 closure 捕捉局部变量成为环境变量,就
escape 了它们原先的定义域,mutation 会导致意想不到的状况,和使用全局 mutable
变量类似。

【在 l*y 的大作中提到】
: 这么说一点都不sb
avatar
n*w
25
如果要把tuple位置换一下,
let swap (a, b) = (b, a)

【在 N******K 的大作中提到】
: swap 不用临时变量 怎么实现?
: 杂技演员 两个手里的东西 往天上一扔 然后互相换位置?
: 就算这样 这个“天”就是临时存储空间

avatar
h*i
26
这是明显的吧。FP语言也是在IP机器上实现的。但是,能用IP语言实现不说明FP语言就
不需要了,就如不能说机器语言能干高级语言的一切所以不需要高级语言一样。

★ 发自iPhone App: ChineseWeb 8.7

【在 d*******r 的大作中提到】
: 记得以前王垠blog上讨论过这个
: =================================================
: http://www.douban.com/note/269210328/
: 其实要达到纯函数式语言的这种“纯”的效果,你根本不需要使用像 Haskell 这样完
: 全排斥“赋值语句”的语言。你甚至不需要使用 Lisp 这样的“非纯”函数式语言。你
: 完全可以用 C 语言,甚至汇编语言,达到同样的效果。
: 我只举一个非常简单的例子,如果你在 C 语言里面定义如下的“函数”。虽然函数体
: 里面含有赋值语句,它却是一个真正意义上的“纯函数”:
: int f (int x) {
: int y, z;

avatar
z*e
27


【在 c******o 的大作中提到】
: 没有mutable,为什么要swap?
: 有其他的方法做类似的事

avatar
h*i
28
Right on

★ 发自iPhone App: ChineseWeb 8.7

【在 c******o 的大作中提到】
: 没有mutable,为什么要swap?
: 有其他的方法做类似的事

avatar
z*e
29
极少情况会escape出来
java的反射也做不到
反射可以抓出private member
但是local var还是不行
只有提供debug模式的jvm
会让外界看到这个var的val是啥
这么做仅仅是为了给ide提供方便
但是原则上也不允许修改

mutable

【在 a*****e 的大作中提到】
: 这个例子只能说明 mutable by default 需要遵守一定规则 (使用 non-escaping 局部
: 变量)才能安全,想用它来例证 mutable by default 好?逻辑上讲不通。
: 为什么我说 non-escaping,因为如果使用 closure 捕捉局部变量成为环境变量,就
: escape 了它们原先的定义域,mutation 会导致意想不到的状况,和使用全局 mutable
: 变量类似。

avatar
x*h
30
不懂,看起来很猛的样子。
avatar
l*n
31
变量有两种解释:
1)associative binding between a name and an expression
2) memory location
第一种是小学就学会了
avatar
q*c
32
int X = 2
int Y = 3
X = X xor y
Y= X xor y
X = X xor y
经典面试题, 当年一个 principle 面试我,要我交换两个变量(用无脑的方法)。
这样的羞辱哥怎么能接收?马上就用这个把他跪了。

【在 N******K 的大作中提到】
: swap 不用临时变量 怎么实现?
: 杂技演员 两个手里的东西 往天上一扔 然后互相换位置?
: 就算这样 这个“天”就是临时存储空间

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。