还差半各种头2007就过去了,总结下这一年: sicp今年到底是没看完,还记得当时开始看的时候,信誓旦旦的一定要在今年看完,然后明年开始看算法导论,可是到了年末,sicp没看完,算法导论没开始看,倒是csapp看了4章了,python 就看了本python in nutshell,后来实在由于ruby的诱惑太大,投入了ruby的怀抱,学习rails的过程中,感觉自己的js,css水平是在太烂,明年要加强了.erlang看了一段时间,不过始终看不进去,现在对lisp的兴趣倒是非常大的说。今年自己后半年,基本上在家里就是用ubuntu,基本上已经习惯了linux,不过对ubuntu实在是郁闷,7 ...
1创建一个hash 就想创建一个数组一样,我们能够使用Hash的[]方法来创建一个hash: puts a1 = Hash.[]("flat",3,"curved",2) puts a2 = Hash.[]("flat"=>3,"curved"=>2) puts b1 = Hash["flat",3,"curved",2] puts b2 = Hash["flat"=>3,"curved"=>2] puts c2 = {"flat"=>3,"curved"=>2} 相似的,我们还可以使用new来创建一个hash: puts d = Hash.new # 创建一个 ...
原文在这里: http://programming.reddit.com/info/63tnv/comments/c02qx55 Latent typing是一种你不需要在源码中的明确的声明你的变量的类型的类型系统.而与之相反的是manifest typing,它需要你在源码中明确的声明你的变量的类型。 Static typing类型系统指的是你的源码中的任何独立的表达式都必须有类型,不管它的类型是直接写在源码中,或者是通过编译器来推断.Dynamic typing是运行时的值才有类型的一种类型系统,因此在它里面程序的表达式能够有任意的类型. overlap 是一种类型推断系统 ...
nnd,bug超多,速度超慢..现在每次进去桌面之前,都要等几分钟。切换个桌面就直接挂掉,真是失望,而且软件更新的速度也很慢,erlang的新版本都出来多久了,还不更新。准备下次鼓捣鼓捣gentoo了...
1 创建和实例化一个数组 类方法[]能够创建一个数组,这里有3种方法使用[]来创建一个数组: a = Array.[](1,2,3,4) b = Array[1,2,3,4] c = [1,2,3,4] 这里还有一个方法叫做new也可以创建一个数组,它可以接受0,1或者2个参数,第一个参数是数组的大小,第二个参数是数组中每一个元素的默认值。 d = Array.new # Create an empty array e = Array.new(3) # [nil, nil, nil] f = Array.new(3, "b ...
1   1个简单的数字区间我们能这样表示: digits = 0..9 scale1 = 0..10 scale2 = 0...10 其中..包括结束点,...不包括结束点,也就是说digits和scale2的表示范围是一样的. 在ruby中,不只是数值可以用作区间,任何ruby对象都可以用作区间。可是并不是所有的表示都有意义或者有用。 接下来让我们来看看怎么操作区间: 2 开区间和闭区间 就像上面说的,..是闭区间,...是开区间: r1 = 3..6 # closed r2 = 3...6 # open a1 = r1.to_a ...
1 symbols简介 在ruby中一个symbol就是一个Symbol类的实例,他的语法也就是简单的一个冒号后面跟着一个声明. 一个symbol就像一个字符串,可是它和字符串所不同的是每一个symbol都只有一个实例。我们举个例子: array = ["foo", "foo", "foo", :foo, :foo, :foo] 在这个例子中字符串"foo"在内存里面被存储为3个不同的对象,而:foo则是被存储为一个对象,只不过是多个引用而已。 在ruby1.6之前的版本,一个symbol不是一个first-class 的对象,他是被传递给一个Fixnum ,然后再存储起来。在现在的 ...
1定积分的计算 我么可以使用Riemann sum来计算积分: def integrate(x0, x1, dx=(x1-x0)/1000.0) #也就是求一个函数在x0到x1区间的积分 x = x0 sum = 0 loop do y = yield(x) sum += dx * y x += dx break if x > x1 end sum end def f(x) x**2 end z = integrate(0.0,5.0) {|x| f(x) } puts z, "\n" ...
1 处理复数 标准库complex 能使我们处理复数。一个复数的创建能使用Complex来构造: require 'complex' puts Complex(1,2) # 3+5i 方法im能够转换一个数字为虚数: puts a = 3.im # 3i puts b = 5 - 2.im # 5-2i 如果你想表示极坐标的话,可以使用polar方法: puts z = Complex.polar(5,Math::PI/2.0) #第一个参数是半径,第二个参数是角度 Complex还提供了I这个常量,他就表示复数中的i: puts z1 = Compl ...
1 在ruby中表示数值 直接表示: 237 或者+237表示一个正数(如果超出范围,那他就是一个无符数) -237 表示一个负数 当一个数字太长的话,可以用_将它分割,比如1048576和1_048_576 是一样的。 在ruby中还可以用0b,0,0x分别表示2进制,8进制和16进制的数: 0b10010110 # 二进制 0b1211 # error! 01234 # octal (base 8) 01823 # error! 0xdeadbeef # hexadecimal (base 16) ...
5规范化unicode字符串 这张没什么意思,它讲的是将一些拉丁文的音调和表示分开来表示,比如"é"  可以表示为e 和'.对我们来说,没有多大的用处,就不说了。 不过这张介绍了一个unicode的库,大家想看的话可以去看看 http://www.yoshidam.net/Ruby.html 6字符串的排序 这张也是没多少意思,对我们来说,这张讲的是对拉丁文,西班牙文之类的字符的排序,作者所作的是把那些字母的发音用上一小节所用到的Unicode库,单独那出来,然后再 进行排序. 这边要注意的是,对于array.sort他的排序,是通过解码后字节大小来进行排序的: eac ...
这边有几个概念先看一下: 引用为了将软件多语言化,首先进行植入能够使用各种语言的设计和方法等的国际化操作(internationalization 118N)。然后针对各种语言,进行能够使用该语言的地区化(localization、L10N)的操作。进行了多种语言的地区化,用户能够切换成自己想使用的语言时的状态称为多语言化(multilingualization、M17N)。 这几个概念的简写版,可以通过下面的函数就行简化: def shorten(str) (str[0..0] + str[1..-2].length.to_s + str[-1..-1]).upc ...
这几天一直在做csapp里面的3.38,他是让你自己实现一个缓冲区溢出程序.代码如下: /* Bomb program that is solved using a buffer overflow attack */ #include <stdio.h> #include <stdlib.h> #include <ctype.h> /* Like gets, except that characters are typed as pairs of hex digits. Nondigit characters are ignored. Stops ...
无语了,写好的blog,不小心按了刷新键,全没了........ 7 使用字符类 字符类也就是包裹在中括号里面的一堆字符.他所匹配的是中括号里面的任意一个字符。 [aeiou] #匹配 a,e,i,o,u中的任意一个字符   要注意在他里面的那些特殊字符比如.?之类的将全部只能表示他们字面上的意思,而\n之类的能正常转义 [a?si\n] #由于?在这里只能表示字面意思,所以这个匹配 a,?,s,i中的任意一个 ^表示非 [^ae] #匹配非a,e中的任意一个的字符 -表示区间 [a-z] #表示从a到z的任意一个字符 如果要在字符类中使用[ - ]那么就必学 ...
在ruby中内置了正则表达式,如果你的ruby版本是1.9或者更后面的版本的话,你的正则表达式引擎将会是一个叫做Oniguruma的东西。这是一个新的引擎,代替了1.8版本中的这则表达式引擎,我们后面会介绍到它。 1编译正则表达式: 正则表达式能够使用Regexp.compile 方法进行编译(这个方法同Regexp.new方法是同义的), 参数可以是一个字符串或者一个正则式(这边要注意一个问题,如果参数是正则式的话,他所附带的参数将会被传播,你可以不用指定后续的第二个参数,这个马上就会看到),看下面的例子: test1=Regexp.compile("Bar"); test=Rege ...
gcc对c语言中的switch的优化 在这里: http://simohayha.javaeye.com/admin/show/146825 接着用上次的代码 switch.c int switch_eg(int x) { int result = x; switch (x) { case 100: result *= 13; break; case 102: result += 10; /* Fall through */ case 103: result += 11; br ...
31 删除指定的字符: delete方法接受一个字符参数,然后从一个指定的字符串中删除这个字符(是删除所有的,而不只是第一个): s1 = "To be, or not to be" puts s2 = s1.delete("b") # "To e, or not to e" s3 = "Veni, vidi, vici!" puts s4 = s3.delete(",!") # "Veni vidi vici" puts s5=s3.delete("b") #不存在b所以返回原字符串 32 打印出指定的字符: dump方法,打 ...
在c语言中switch语句会被实现为一个跳转表,跳转表是一个数组,这个数组里面存的都是地址,也就是说只要你传递给它一个i,他就会返回给你,你所需要跳转的地址,这样做得好处就是执行语句的时间和条件的个数无关..不过在gcc里面他也只是条件数大于4个,才会生成这个跳转表. 请看下面的代码: int switch_eg(int x) { int result = x; switch (x) { case 100: result *= 13; break; case 102: result += 10; /* F ...
SCL90自评症状量表 http://news.21cn.com/luntan/liantang/2007/10/10/3712804.shtml nnd,看起来挺准的,我有强迫症,每天我洗手要洗几十次,而且一定要用洗手液... 看我的得分: 引用你的总分为167分,总均分为1.8555555555555556分 其中JSB单项分12分,JSB因子均分1.2 躯体化分13分均分1.0833333333333333 强迫症状28分均分2.8 人际敏感21分均分2.3333333333333335 抑郁症状24分均分1.8461538461538463 焦虑症状21分均分2.1 敌对症状1 ...
21 在字符串中插入表达式 #{}做的就是这个,在{}中的所有表达式,都会自动计算,看下面的例子: temp_f="ff" temp_c="cc" b=2 a=1 c=3 word="cdafr" puts "#{temp_f} Fahrenheit is #{temp_c} Celsius" #ff Fahrenheit is cc Celsius puts "The discriminant has the value #{b*b - 4*a*c}."#The discriminant has the value -8. puts "#{word} is #{word. ...
接着昨天的。 11 控制字符串的大小写 。 downcase 方法可以转换一个字符串为小写,upcase可以转换一个字符串为大写.capitalize 方法强迫字符串第一个字符为大写,其他的字符为小写。 s1 = "Boston Tea Party" puts s2 = s1.downcase # "boston tea party" puts s3 = s2.upcase puts s1.capitalize #Boston tea party swapcase 方法可以将一个字符串中的大小写进行翻转,而casecmp方法则是实现了和<=>相同的 ...
ruby本来很早就要开始看了,不过最近才真正开始看,那本宝石书还差最后1章就读完了,于是开始看the ruby way了,于是在这边做个记录,也算是督促自己吧.. ruby中的string可以使用多种方式来表示. 1 单引号,这种表示支持的转义最少,只支持单引号的转义和\的转义: 'bobo' ->bobo 'bobo\'\\' -> bobo'\ 'bobo\t' -> bobo\t 2双引号,这种表示支持的转义就比较多了,比如换行,比如制表符.. "aa\tsd" ->    aa   sd 3 使用%q,%Q,%q相当于单引号,%Q相 ...
昨天去秤体重,没想到又肥了,nnd我要抓狂了,怎么办怎么办(莫非真要打通任督二脉),决定从今以后不吃垃圾食品,每顿饭也尽量少吃,希望体重能降下去,哎,想当年俺是多么的玉树临风,貌似潘安,多吃了点饭就变这样了,真是沧海桑田...    当时高中的时候,非常瘦,整天想着胖,于是就每天狂吃,等到身材变成现在这样了,又想着瘦的时候的好了,不过算起来自己已经3年没有做过任何运动了,而且吃饭的时候战斗力又非常的强,变成这样也是该得的..    上次在西安的时候去买裤子,人家买衣服的小姐,看见我,我还没问呢,那女孩就说我们这里没大号的,妈的,当时我都想打人了。。
simohayha
搜索本博客
存档
最新评论