由买买提看人间百态

topics

全部话题 - 话题: 赋值
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
c****p
发帖数: 6474
1
来自主题: Programming版 - c里全局数组的再次赋值问题
先清零再赋值就好了。
要么确保第二次赋值之后的访问只发生在第二次赋值的范围内即可。

a***y
发帖数: 2803
2
来自主题: Programming版 - c里全局数组的再次赋值问题
int占4个字节,char占1个字节.memset赋值是按字节来的,所以适合于char.
对int array清零赋值为0可以,但是如果赋值为1,那就不对了.
G***G
发帖数: 16778
3
来自主题: Programming版 - for 循环下给不同变量赋值问题
假设有100个变量,分别为a1,a2,....a100
现在希望当i=1时,给a1赋值
i=2,给a2赋值
.....
不希望用switchcase和if else语句,那样增加程序运行时间。
也不能用数组来存贮这些变量值。 传统的a[100] = f(i),不允许使用。因为变量ai必
须存在和赋值。
请问有什么其他好方法。
有没有这样的一个数组
a[100]= {a1,a2,......a100}
当a的元素值变化,响应变量ai也变化?
f**********g
发帖数: 107
4
来自主题: Computation版 - 请教大家matlab矩阵循环赋值的问题
需要做到以下矩阵赋值(其中I,J,K是三个已经赋值的数):
U(I,J,K)=0;
for i=1:I
for j=1:J
for k=1:K
U(i,j,k)=a*i+b*j^2+c*k^3;
end
end
end
程序里有很多这样的循环赋值,很占用时间。请问有没有办法用矩阵运算来解决?
f**********g
发帖数: 107
5
来自主题: Computation版 - 再请教大家matlab循环赋值的问题
感谢jzxu解答上一个问题,用meshgrid确实缩短了大量的运行时间。
现在需要做到以下矩阵赋值(其中I,J是已经赋值的数):
U(I,J)=0;
for i=1:I
for j=1:J-i
U(i,j)=f(i,j);
end
end
第二个循环的上限含有i。现在想把这个循环赋值改成矩阵运算。这个问题也可以用
meshgrid来搞。但是会有很多重复项,请问有更好的办法没有?
N**********d
发帖数: 9292
6
来自主题: JobHunting版 - 问个缺少逗号的数组赋值问题
【 以下文字转载自 Programming 讨论区 】
发信人: NeedForSpeed (working~~~~~), 信区: Programming
标 题: 问个缺少逗号的数组赋值问题
发信站: BBS 未名空间站 (Sun Jan 15 17:05:58 2012, 美东)
源程序是:
#include
#include
using namespace std;
int main(int argc, char * argv[])
{
std::string m_ColumnName [] =
{
"str1",
"str2"
"last_one"
};
cout << m_ColumnName[0].substr(0,4) << endl;
cout << m_ColumnName[1].substr(0,4) << endl;
cout << ... 阅读全帖
q*********u
发帖数: 280
7
来自主题: Java版 - local变量被赋值了几次?
class X{ public int i=5; }
class Y extends X{ public int i=10; }
public class Test2{
public static void main(String[] args){
X x = new Y();
System.out.println("x.i = " + x.i );
}
}
答案是5,我在考虑, i的话在这里是不是赋值了2次,第一次在new Y(), 第二次在X x
=...的upcast这里出现。或者是i其实在这个X x = new Y()中,内存中有两个i? 我觉
得应该不是后者,因为X x的话,本身应该是reference, 个人猜应该是在upcast里面被
重新赋值成5.
还做了cpp的测试,
#ifndef STOCK_HPP_
#define STOCK_HPP_
class Stock{
public:
double price;
Stock();
};
class StockB : public Stock{
public:
k***t
发帖数: 57
8
来自主题: Programming版 - c里全局数组的再次赋值问题
有个全局数据 最开始定义的大小要比实际用到的大些
第一次循环对数组赋值
第二次循环想对数组重新赋值 长度仍然比定义的小 但会跟第一次循环时的长度不一样
这种情况请问如何重置数组啊?谢谢了
s*****n
发帖数: 2174
9
来自主题: Statistics版 - 什么时候r里兴用=赋值的
同意. 我也一直用 <-
我觉得R的一个优点之一, 就是把
赋值: a <- 3
定义: seq(from = 1, to = 3)
比较: if (a == 1)
这三种操作区分的很清楚.
新版本的R, 允许用 = 进行赋值,
也就是为了兼容别的语言的习惯而已,
其实不是什么好事情.
r****t
发帖数: 10904
10
来自主题: JobHunting版 - 问个缺少逗号的数组赋值问题
multiple line string literals are concatenated
第三个自然是 undefined 了,还有这个不叫赋值,要遇到较真的面试官
就挂了。
N**********d
发帖数: 9292
11
来自主题: JobHunting版 - 问个缺少逗号的数组赋值问题
谢谢解答
那这不是赋值是什么呀?
S****e
发帖数: 10596
12
我用jq rateit preset, readonly 显示rating
a-rateit-ispreset="true" data-rateit-readonly="true">
里面 data-rateit-value 是jq rateit 定义的
有什么方法给这个参数赋值?
谢谢
b***i
发帖数: 3043
13
是java,如果原来的代码是c++, 就是我写的那样,可以用引用或者指针获得地址,从而
给变量赋值。现在要转换成java,如何写呢?
C++程序如下
我有一个类叫storage,其中有个数组double ok[100];
还有个方法acquirereference(int a)想返回ok[a]的引用,比如我在主程序中
storage m;
double& storage::acquirereference(int a)
{
return ok[a];
}
double& myvalue=m.acquirereference(10);// here to get &ok[10] as in c++
myvalue=5;可以让ok[10]获得5。
应该怎样写java的方法acquirereference的返回值类型和return 的参数呢?
l***e
发帖数: 480
14
类里的字符串向量赋值,总报错:
java.lang.NullPointerException
定义了一个类:
CLASS MP{
Vector AAA;
.....
};
.....
String STR=“XXXXX”;
MP mp1= new MP();
mp1.AAA.add(STR); 〈--- EXCEPTION
什么问题?
w*m
发帖数: 1806
15
for example,
#/!bin/csh
sqlplus -silent id/password@oracel_instance < "%s",$1;}' | echo(I want to set xx=..)
select id from table;
EOF
awk处理后的结果,如何赋值给一个变量呢?
v*****r
发帖数: 1119
16
1. 简单的 query, 直接在 query 里dynamic赋值
sqlplus -silent id/password@oracel_instance < select 'foo='id from table;
...
EOF
2.复杂的 Query ,re-direct here document output to a temporary file and awk
the temporary file
sqlplus -silent id/password@oracel_instance < tempfile
select column1,column2...,columnN from table;
...
EOF
awk .... tempfile

printf(
k***t
发帖数: 57
17
来自主题: Programming版 - c里全局数组的再次赋值问题
我现在是对第二次赋值做个计数 然后正向你说的 保证只用那范围内
但请教一下数组清零有什么好办法么?谢谢
a***y
发帖数: 2803
18
来自主题: Programming版 - c里全局数组的再次赋值问题
memset是对char的数组赋值,如果是int 数组,用这个方法只能用于清零.
既然数组长度变化,可以用malloc分配动态空间,size也可变.
N**********d
发帖数: 9292
19
来自主题: Programming版 - 问个缺少逗号的数组赋值问题
源程序是:
#include
#include
using namespace std;
int main(int argc, char * argv[])
{
std::string m_ColumnName [] =
{
"str1",
"str2"
"last_one"
};
cout << m_ColumnName[0].substr(0,4) << endl;
cout << m_ColumnName[1].substr(0,4) << endl;
cout << m_ColumnName[2].substr(0,4) << endl;
return 0;
}
赋值的时候,"str2"后面少了个逗号,然后"last_one"到哪里去了?
是不是g++直接就把它扔了?
前两行输出都是预期的
str1
str2
而第三行则不确定,经常产... 阅读全帖
m*********t
发帖数: 527
20
来自主题: Programming版 - 问个简单的数值赋值问题
断点在哪,看的时候 i, j 等于几? 你要是还没赋值那 a[i][j] 值可以是乱七八糟的
东西。
“像越界也没有任何错误”。。。。。。。。你要是喜欢
segmentation fault 大可以不在乎这些。
c*****i
发帖数: 73
21
来自主题: Computation版 - mathematica如何对变量赋值?
搞定了,我是土人。
但是:赋值用英语说应该是: assignment
q***z
发帖数: 543
22
来自主题: Computation版 - 一个单元数组赋值的问题
有一个结构的元素使用数组来表示,如:structure.index1={a,b,c,A} 其中a,b,c 都
是numberic,A 也是N个numberic,而且知道 A=B(:),如果直接写成第一行的格式,A就变
成了一个cell,与a,b,c 不对等。因为N太大了,不可能手工输入,请教如何赋值进去
呢?谢谢!!!
l*****i
发帖数: 3929
23
来自主题: Computation版 - 再请教大家matlab循环赋值的问题
用meshgrid给整个矩阵赋值然后扔掉一半...
s*******t
发帖数: 2896
24
来自主题: Statistics版 - 什么时候r里兴用=赋值的
R禁止在if条件里用=,比c强,例如
> x<-1
> if(x=3) print(TRUE)
Error: syntax error, unexpected EQ_ASSIGN in "if(x="
但是R还是允许使用赋值语句的值,例如
> x<-1
> (x=3)+5
[1] 8
这是我最怕的。
节省每行敲一个字符的时间,回头一不小心出个bug找一下午。个人认为不值。
p********6
发帖数: 1339
25
来自主题: Statistics版 - 什么时候r里兴用=赋值的
我怎么记得R里面 = 和 <- 是有区别的,= 除了赋值还有一点别的功能。谁能提醒我一
下?
s*r
发帖数: 2757
26
来自主题: Statistics版 - 什么时候r里兴用=赋值的
发信人: sycophant (面面), 信区: Statistics
标 题: Re: 什么时候r里兴用=赋值的
发信站: BBS 未名空间站 (Fri Nov 14 21:56:21 2008)
R禁止在if条件里用=,比c强,例如
> x<-1
> if(x=3) print(TRUE)
Error: syntax error, unexpected EQ_ASSIGN in "if(x="
y******n
发帖数: 188
27
来自主题: Statistics版 - sas 变量赋值问题
如图,在只是知道第一列(obs)数据的情况下,
如何加入第二列变量group,并且赋值
谢谢
s***c
发帖数: 1664
28
来自主题: Statistics版 - 问个sas小问题: 赋值macro variable
变量age, 我想把它的最小值和最大值赋值给两个macro variable, 然后再做histogram
的时候调用他们.
proc means data=data max min ;
var age;
OUTPUT OUT=stats1 min(age)=min_age max(age)=max_age;
run;
data _NULL_;
set stats1;
call symputn("MIN_AGE", min_age);
call symputn("MAX_AGE", max_age);
run;
proc sgplot data=data;

histogram age / binstart=%symget('MIN_AGE') binwidth=('MAX_AGE'-'MIN
_AGE')/10;
run;
首先symputn不能用,那怎么把numeric值赋给macro variable呢? 然后在proc 里面
怎么resolve这两个macro variable, binstart是MIN_AGE, binwidth... 阅读全帖
s***c
发帖数: 1664
29
来自主题: Statistics版 - 问个sas小问题: 赋值macro variable
it works,谢谢了。 一定要用proc sql吗,在data step里不可以把numeric赋值给
macro variable?还有symget是用在data step里,proc里面用&?
s***c
发帖数: 1664
30
来自主题: Statistics版 - 问个sas小问题: 赋值macro variable
对的,,,用call symput就好了, 不用赋值成numeric, character就好了,然后在
proc里面用& resolve, symget在data step里面只有一些特殊情况才用。明白了

data
t******n
发帖数: 2939
31
☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:34:22 2013, 美东) 提到:
假设素数只有有限个, 记为 p_1,p_2,...,p_k
考察 N = p_1*p_2*...*p_k + 1
可知: 对于任意i = 1,2,3,...,k, p_i 不能整除 N
由素数的定义:
a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除
可知: N是素数
这与素数只有p_1,p_2,...,p_k矛盾.
故假设不成立.
所以素数有无穷多个.
☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:37:03 2013, 美东) 提到:
在承认素数的这个等价定义 (即 a是素数 <=> a是大于1的自然数, 且a不被任何小于a
的素数整除) 的前提下, 居然有人会认为这个证明是错的, 或者是不完备的.
我实在不能理解.
求问一下大家, 是不是有的人的脑子天生有缺陷, 根本怎么教都不会明白... 阅读全帖
y**b
发帖数: 10166
32
来自主题: Programming版 - C++的"初始化"小结
以前读C++ Primer第四版中文版给自己写了个摘录,一搜索“初始化”,发现内容还很
庞杂,贴出来供参考,前面是页号。
042 两种初始化: 直接初始化(), 拷贝初始化=
044 变量初始化:类类型调用默认构造函数,局部内置类型不初始化,全局内置类型初
始化为零。
080 容器元素的值初始化(未指定元素的初始化式时):类类型调用默认构造函数,内置
类型置零。
097 数组元素的初始化(同变量初始化规则044):元素为类类型的数组调用默认构造函数
;局部内置数组不初始化,全局内置数组初始化为零。
117 new动态数组元素的初始化:类类型调用默认构造函数,内置类型不初始化,或指定
进行值初始化为零(且只能为零)。
151 new动态对象之初始化:类类型调用默认构造函数,内置类型不初始化,或指定进行
值初始化为任意值。
对提供了默认构造函数的类类型,没有必要进行值初始化, 会自动调用构造函数:
string *p=new string;和string *p=new string();无区别。
对内置类型或未定义默认构造函数的类类型,存在区别:int *p=new int... 阅读全帖
f******x
发帖数: 98
33
来自主题: Programming版 - FP 之我见 (长)
不要偷换概念,用时间作为argument的函数在FP里有什么问题?核心问题是为什么需要
赋值?FP
说不需要赋值,你说物理需要赋值。我说只是你的物理需要赋值,真正的数学物理只需
要函数,无需赋值。数学物理里面没有x = x + 1这种玩意儿。
另外函数只是映射关系,和赋值无关。硬说call函数就是赋值,纯属狡辩
I***a
发帖数: 704
34
来自主题: EE版 - 请教一个verilog code
他这个地方用blocking赋值可以的, 和用Non-Blocking赋值是一样的结果
你说的问题是verilog本身的问题
Verilog is more error prone:
1. Verilog里wire和reg的定义都是全局的,
VHDL里信号的定义是全局的,变量的定义是局部的。
2. Verilog里Blocking/Non-Blocking赋值对wire和reg混用
VHDL里对变量的赋值相当于verilog里的Blocking赋值,
VHDL里对信号的赋值相当于verilog里的Non-Blocking赋值,
s*****n
发帖数: 2174
35
来自主题: Statistics版 - 其实R有的方面也很BT
问了一个公司的大牛同事, 终于搞明白怎么回事了.
a <- 1:100 # class(a) is integer
tracemem(a)
b <- a
b[1] <- 1 # 注意1是numeric双精度, 不是integer
出现的两行转换, 第一次是将b复制一次, 第2次是转换成双精度, 然后才赋值.
看下面的例子, 如果直接赋值integer,就没有这个问题.
a <- 1:100
tracemem(a)
b <- a
b[1] <- 1L
有趣的是下面这个例子, 把一个integer赋值进双精度的vector, 只生成一次转换
a <- c(1,2,3) # a是numeric
tracemem(a)
b <- a
b[1] <- 1L # 只生成一次copy.
也就是说, 将numeric scalar赋值进一个integer的向量, R会首先把vector转换成双精
度, 然后再赋值. 但是把integer scalar赋值进一个numeric向量, R会把scalar先转换
成双精度, 然后赋值进去.
l**t
发帖数: 64
36
来自主题: Programming版 - 关于placement new
这个说得不严谨,举的2个例子有问题
赋值操作是特殊的成员函数,一般不会声明成虚函数,除非用户有特殊用途。
如果用户不提供该函数,编译器也会生成一个缺省,按成员赋值。
就算是派生类赋值,也是分别调用各个基类的赋值操作函数分别对自己的各slice部分
赋值
至于这种情况
B* p = new D; //B是D的基类
*p = D(); //只出现B部分被赋值
这个责任应由用户负责,并没有违反C++的语义

n
class
i
perfo
from
i
c
copy
approach
F***t
发帖数: 412
37
来自主题: Mathematics版 - Re: 极限和连续的几个问题
3。
我是按照cantor集合构造的。
把[0,1]区间从中间剖开,左半部份赋值为0,右半部份赋值2/3。
左右两半在从中剖开,左左部份赋值为0,左右部份赋值为2/9,
右左部份赋值2/3=6/9,右右部份赋值为8/9。....
这样做下去就是一个单调递增函数,在每一个取半的地方都是
断点,断点在[0,1]上dense。
用小数表示更简单。
用二进制表示[0,1)上的实数,每一个都是一序列
0.100100101001010111...
cantor集合用三进制表示,也是一序列,但由0,2组成:
0.200202020202020202222220...
现在我把[0,1)上的实数的二进制表示中的1变为2。
这个映射把实数映射到cantor集合,结果和前面的一样。

f(xi)
contradiction.
that

T*******x
发帖数: 8565
38
来自主题: Military版 - 一个群论问题
我们证明一下|H|=n.
根据fundamental theorem of finite abelian group,一个finite abelian group可
以表示成cyclic group的直积。这就相当于一个向量空间可以分解成几个一维空间一样
,每个一维相当于一个坐标维,空间中的每个元素都能分解成坐标维元素的线性组合,
可以写出其坐标。
选定每一个cyclic group中的generator,这种选定方法不是唯一的,但是可以选定。G
到Z_n的一个homomorphism相当于给每个generator元素赋值,反之亦然,给每一个
generator的任意一套赋值都能延伸成一个homomorphism。所以H的cardinality就等于
给每一个generator赋值的方法的数目。
看一个直积component,也就是一个cyclic group,假设它的order为m,那么它的
generator的order也为m,Z_n中有唯一一个order m的子群,给cyclic group
generator赋值只能选遍这个order m的子群,有m种方法。
所以总的赋值方法数... 阅读全帖
S**I
发帖数: 15689
39
来自主题: JobHunting版 - [合集] 问个C的基本问题
☆─────────────────────────────────────☆
honeydream (pretty) 于 (Fri May 6 00:30:21 2011, 美东) 提到:
下面这个程序为啥会segmentation fault呢?
int main(void)
{
char *p1, *p2;
*p1 = 'a';
*p2 = 'b';
printf("%c %c\n", *p1, *p2);
return 0;
}
如果我不用指针,把p1,p2的星号都去掉,就可以输出正确结果。
☆─────────────────────────────────────☆
chenpp (chenpp) 于 (Fri May 6 00:31:43 2011, 美东) 提到:
p1和p2浮空,指向未定义的地址空间。
对未定义的地址空间进行读写操作会导致未定义的行为,包括段错。

☆─────────────────────────────────────☆
mercuriusl (Mercurius) 于 (Fri May 6 ... 阅读全帖
T*****e
发帖数: 361
40
比方说,如果class A中有一个object B,
在set/get方法中,是直接赋值呢,还是先拷贝?
直接赋值:
B getB(){ return b; }
void setB( B b ){ this.b = b ; }
拷贝:
B getB(){ return new B(b); }
void setB( B b ){ this.b = new B(b) ; }
当年用c++编程的时候,除了container class之外,
都是用拷贝,这样可以防止引用对象/数据在别处被误删。
java基本上不存在这个问题。
当然了,如果直接赋值,数据在别处被修改就没法避免。
本来想都用拷贝方法来完全封装的,后来觉得还是直接赋值
比较快(写代码、执行)。不过直接赋值可能会导致调试
比较复杂,而且容易被abuse。
大家都是怎么处理这个问题的?
呵呵,可能我需要读一本Thinking in java之类的书。
by the way, 哪儿有电子版么?或者别的推荐?
多谢了先。
m****s
发帖数: 1481
41
我需要读取一个数据文件,然后把读出来的数据放到不同的变量里,因为这些变量的长
度不确定,所以都是临时根据长度分配内存,code如下:
... main(){
...
...
int *a,length_a;
double *d,length_d;
char *c,length_c;
FILE *fp;
... 打开文件代码...
...读文件,获取变量a,d,c的长度...
a= new int[length_a];
d= new double[length_d];
c= new char[length_c];
...计算,处理...
delete[] a;
delete[] d;
delete[] c;
}
这种最基本的方法运行没问题。
现在因为我要load的变量很多,所以我想把loading用一个函数来做。如果只有一个变
量,我可以把它的pointer定义在main里面,然后用一个函数读取文件,在函数里
declare一个临时pointer,分配内存,赋值,然后返回这个pointer。
但是如果多个变量的情况怎么做呢?
我先试了把多个变量的指针传递给子函数,在子函数里declare... 阅读全帖
L*********s
发帖数: 3063
42
来自主题: Programming版 - 为什么java要用setter和getter
如果setter只是用来给属性赋值,那么确实没必要弄setter和getter,
但是随着业务逻辑的发展,或者设计的变动,
往往我们要求在给属性赋值的同时还要干一些其他事情。
也许你辛辛苦苦写下了一百多行给某个public属性赋值的语句后,
忽然你的manager或客户要求你在给那个属性赋值的同时一定要synchronized()什么东
西,
这时你就必须在每个赋值的地方进行改动。
如果你当初只用setter,那么只要修改一下setter就可以了。
同时为了让你的合作者们使用这个类时也只用setter,就得把属性设为private,
然后就读数值就得用getter.
也许哪天你的客户要求关于这个属性的transaction都跟某个新建的网页同步,
或者要求跟某个新建的数据库同步,或者要求这个属性的值一旦变化便立即触发某个新
定义的事件。
这时你就必须添加无数的代码。
如果你当初用了getter和setter,事情就超级简单了, 基本不用改代码! 只需用鼠标设置
javabean, 然后所有的脏活累活container都自动帮你解决.
d*******r
发帖数: 3299
43
记得以前王垠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 进行了赋值,但这种赋值都是“局部”的,它不会
在函数里留下“状态”。所以这个函数虽然使用了被“纯函数程序员”们唾弃的“赋值
语句”,它仍然完全的... 阅读全帖
p*u
发帖数: 2454
44
来自主题: Programming版 - 编程的宗派
总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”
(OOP)好。既然现在出了两个帮派,就有人积极地做它们的帮众,互相唾骂和残杀。
然后呢,又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问
题的工具就是好工具!
我个人其实不属于这三帮人中的任何一个。
面向对象编程(Object-Oriented Programming)
如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所
谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点点抽
象能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构
,structure),它的本质就是一个从名字到数据的“映射表”(map)。你可以用名字
从这个表里面提取相应的数据。比如point.x,就是用名字'x'从记录point里面提取相
应的数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即
使你插入了新的数据成员,仍然可以用原来的名字来访问已有的数据,而不用担心下标
错位的问题。
所谓“对象思想”(区别于“面向... 阅读全帖
h*h
发帖数: 27852
45
来自主题: Programming版 - 王垠: 编程的宗派
http://www.yinwang.org/blog-cn/2015/04/03/paradigms
编程的宗派
总是有人喜欢争论这类问题,到底是“函数式编程”(FP)好,还是“面向对象编程”
(OOP)好。既然出了两个帮派,就有人积极地做它们的帮众,互相唾骂和鄙视。然后
呢又出了一个“好好先生帮”,这个帮的人喜欢说,管它什么范式呢,能解决问题的工
具就是好工具!我个人其实不属于这三帮人中的任何一个。
面向对象编程(Object-Oriented Programming)
如果你看透了表面现象就会发现,其实“面向对象编程”本身没有引入很多新东西。所
谓“面向对象语言”,其实就是经典的“过程式语言”(比如Pascal),加上一点抽象
能力。所谓“类”和“对象”,基本是过程式语言里面的记录(record,或者叫结构,
structure),它本质其实是一个从名字到数据的“映射表”(map)。你可以用名字从
这个表里面提取相应的数据。比如point.x,就是用名字x从记录point里面提取相应的
数据。这比起数组来是一件很方便的事情,因为你不需要记住存放数据的下标。即使你
插入了新的数据成... 阅读全帖
h*i
发帖数: 3446
46
来自主题: Programming版 - 面向数据的编程与面向对象的编程
R programming还是基于赋值的,results <- lm(X),所以不算是FP.
在纯FP里面,一般编程不赋值。immutable数据,不能赋值。如果你没用过,可能想象
不出不能赋值怎么编程。哈哈。
R的作者后悔没干脆把R搞成Lisp来着,所以他有FP的倾向,但R不是FP的语言。
Lisp不一定是纯FP的,common lisp, scheme, 这些Lisp,大都还是基于赋值的编程,
不是FP为主的。数据还是mutable的。
Clojure是FP为主的,因为是immutable by default
I***a
发帖数: 704
47
来自主题: EE版 - Verilog vs VHDL
Verilog根本不好用(more error prone, easier to have synthesis issues),
1. Verilog里wire和reg的定义都是全局的,
VHDL里信号的定义是全局的,变量的定义是局部的。
2. Verilog里Blocking/Non-Blocking赋值对wire和reg混用
VHDL里对变量的赋值相当于verilog里的Blocking赋值,
VHDL里对信号的赋值相当于verilog里的Non-Blocking赋值,

quality.
15-
y********i
发帖数: 205
48
来自主题: Statistics版 - 问一个关于SAS的循环的问题
写了下面一个程序,实际就是一个3x3的矩阵赋值。但是不知道为什么,结
果只能输出矩阵c为{1 2 0, 4 5 0, 7 8 0}.不知道为什么最后一列不赋值? 单独输出
i,j的确是从1到3,但是不知到为什么结果最后一列不赋值,实在是想不明白。请高人
指点下。(我知道如果直接用i= 1 to 3和j=1 to 3赋值是没有问题的,但是我就是想知道我下
面这样赋值的方法为什么不行,逻辑上有什么问题啊?)
proc iml;
a={1 2 3, 4 5 6, 7 8 9};
c={0 0 0, 0 0 0, 0 0 0};
do b1=-4.286 to -3.886 by 0.2;
do b2=-1.676 to -1.276 by 0.2;

i=(b1+4.286)/0.2+1;
j=(b2+1.676)/0.2+1;
c[i,j]=a[i,j];
end;
end;
print c;
quit;
p**z
发帖数: 65
49
刚开始用Python不习惯,为什么传递参数的时候没有办法指定是 by reference 或者
by value。后来终于理解了,Python的变量和许多其他语言的不同,其他语言的变量名
常可以被想象成有名字的装载数据的容器,变量赋值是把数据放进容器里(即使是 by
reference,也是把指针数据放进指针变量里);Python的变量名却最好比喻为在对象
上贴上的名字标签,所以变量赋值永远是 by reference,就是在已经有的对象上添一
个标签。这个可能跟Python所有数据类型都是对象(object)有关系。
这个方法通常最有效率,但是也容易让人迷惑,因为跟一般人的编程习惯不一样。
对于 immutable 的对象(比如浮点常数,字符串常数等等),把它赋值给一个变量名
仅仅是给这个常数对象贴上新标签,常数对象本身并不能被改变。如果两个标签 A 和
B 贴在同一个常数对象上,给 A 赋新值就好像把这个标签揭下来贴到另一个不相干的
常数对象上,对 B 没有影响,所以表现好像跟 by value 传参很像,但实际上还是 by
reference 的。
但是对于 mutable 的对... 阅读全帖
g****g
发帖数: 1828
50
来自主题: Linux版 - awk
AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎
之一。这种编程及数据操作语言(其名称得自于它的创始人 阿尔佛雷德·艾侯 、
Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所
拥有的知识。 AWK 提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、
流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语
言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言: AWK 程序设计语
言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程
序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,
还有无数其他的功能。gawk 是 AWK 的 GNU 版本。
最简单地说,AWK 是一种用于处理文本的编程语言工具。AWK 在很多方面类似于 Unix
shell 编程语言,尽管 AWK 具有完全属于其本身的语法。它的设计思想来源于
SNOBOL4 、sed 、Marc Rochkind设计的有效性语言、语言工具 y... 阅读全帖
1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)