Saturday, April 17, 2010

SICP Series-chapter 2.3

I don’t like the section of 2.2.4, so I skip them.

Until now, all the data we deal with is number, integer or float. Now we will face symbolic data. What’s symbolic data? For example. What’s the difference between these two sentences. “Please say your name” and “Plase say ‘your name’ “. If you and understand what’s the difference, you will know what’s symbolic data.

(defvar a 1) 
(defvar b 2)
(list a b) 
(list 'a 'b)

You can try the code above, and compare the results. You will find that ‘a stands for the character “a”, not the value 1. I don’t know how to use more rigorous definition to depict it. But I think you can get the main point from the code and example above.

2.53

2.54

(defun mySymListEq(a b)
 
(cond ((and (symbolp a)
             
(symbolp b)
             
(eq a b))
         t
)
       
((not (and (listp a) (listp b)))
         
nil)
       
(t (and (mySymListEq (car a) (car b))
               
(mySymListEq (cdr a) (cdr b))))))

2.55

‘ symbol is the abbreviation of quote


2..3.2 is a beautifully designed system. I like this section. At first, I need put the code here provided by the textbook first.


(defun make-sum (a1 a2)
 
(list '+ a1 a2))

(defun make-product (m1 m2)
  (list '
* m1 m2))

(defun sum? (x)
 
(and (consp x) (eql (car x) '+)))

(defun addend (s)
  (cadr s))

(defun augend (s)
  (caddr s))

(defun product? (x)
  (and (consp x) (eql (car x) '
*)))

(defun multiplier (s)
 
(cadr s))

(defun multiplicand (s)
 
(caddr s))

(defun deriv (expr var)
 
(cond ((numberp expr) 0)
       
((variable? expr)
         
(if (same-variable? expr var) 1 0))
       
((sum? expr)
         
(make-sum (deriv (addend expr) var)
                   
(deriv (augend expr) var)))
       
((product? expr)
         
(make-sum
           
(make-product (multiplier expr)
                         
(deriv (multiplicand expr) var))
           
(make-product (deriv (multiplier expr) var)
                         
(multiplicand expr))))
       
(t
         
(error "unknown expression type -- DERIV ~A" expr))))
(defun =number? (expr num)
 
(and (numberp expr) (= expr num)))

(defun make-sum (a1 a2)
 
(cond ((=number? a1 0) a2)
       
((=number? a2 0) a1)
       
((and (numberp a1) (numberp a2)) (+ a1 a2))
       
(t (list '+ a1 a2))))

(defun make-product (m1 m2)
  (cond ((or (=number? m1 0) (=number? m2 0)) 0)
        ((=number? m1 1) m2)
        ((=number? m2 1) m1)
        ((and (numberp m1) (numberp m2)) (* m1 m2))
        (t (list '
* m1 m2))))

2.56

(defun exponentiation?(expr) 
    (and (listp expr) (symbolp '** (car expr))))   
(defun base(expo-expr) 
    (cadr expo-expr))   
(defun exponent(expo-expr) 
    (caddr expo-expr))   
(defun make-exponentiation(base expo) 
    (cond ((= base 0) 0) 
              ((= expo 0) 1) 
              ((and (numberp base) (numberp expo)) (expt base expo)) 
              ((and (symbolp expo) (numberp base)) 
                    (error "At the moment, it do not support this formate")) 
             (t (list '** base expo))))   
;;This is the code snippet for exponentiation 
(if (exponentiation expr) 
        (make-product 
            (make-product (exponent expr) 
                                     (make-exponentiation (base expr) (- (exponent expr) 1))) 
    (deriv (base expr) var)))

2.57
I think this exercise is a good example of using the data abstract. If you have a good data-selector, user do not need know the detail about how to store the data.In this case,Only thing you need to change is the function which is used to get the proper data. You do not need to change the main function.


(defun make-sumv2(&rest numbers)
 
(append (list '+) numbers))

(defun augendv2(expr)
  (if (> (length expr) 3)
      (append (list '
+) (cddr expr))
     
(caddr expr)))

(defun make-productv2(&rest numbers)
 
(append (list '*) numbers))

(defun multiplicandv2(expr)
  (if (> (length expr) 3)
      (append (list '
*) (cddr expr))
     
(caddr expr)))

2.58
For the first part. it’s very easy. For the second part, I intend to finish later, not now.


Ubuntu 9.04 pdf中文显示乱码

Ubuntu 9.04中看有些中文pdf的时候,会出现乱码,或是直接显示不出,或是方框。
sudo apt-get install poppler-data
这个方法对我适用,不知道其他情况下是否适用。

Friday, April 16, 2010

洗脑要从娃娃抓起


当年,邓小平说“足球要从娃娃抓起”,“计算机要从娃娃抓起”。到了今天,多年的邓小平理论的不断发展,衍生出了“肾结石要从娃娃抓起”,“盖房子要从娃娃抓起”。但是万变不离其宗,最最核心的一条就是“洗脑要从娃娃抓起”。这一条极其重要,牵一发动全身。

影帝确实是四处奔波,但并非辗转劳顿。至少他不用去排队买火车票,上网抢打折机票,跟黄牛讨价还价,上下车的时候也无需安检,还有专车接送。要是放在几年前,他没有暂住证的话,也不会被遣送。只能说他生不逢时,碰上一个“多难兴邦”的时候。作为一国总理,背古诗词,仰望星空,泪洒灾区,并非是他的工作,他的工作是保障民生,发展经济,尽最大的可能维护民众利益与权利,纵观数年任期,他做到了哪一点?头发斑白,力不从心,就应该及时的让位,让年富力强的人担当。

两年之后,影帝就要卸任,其实这个时候,我党应该发一个“一吨重的勋章”,就如同六十年代的时候,伏地魔要给赫鲁晓夫发个“一吨重的勋章”是一样的。在这个两级分化严重,民众权利与尊严被无限践踏的时候,影帝以一种亲民的姿态出现,赢得了许多民众的支持。而他那晶莹的泪珠,更是打动了许多的中国人。在很大程度上,将社会巨大的矛盾化解了一些。民众虽然依旧怨气依然,可是许多人只是将矛头指向了身边的那些“土皇帝”们。他们都被影帝给骗了,这些恶棍的最大后台,就是他们所支持的。用李傲的话来说,就是“举着红旗反红旗”。

影帝的泪水,我想是真的。可那是作为一个人,一个有良知人的泪水,而并非是一个总理的泪水。汶川的悲剧又在重演,你的泪水再多,能像观音羊脂玉净瓶里的水一样起死回生吗?此类事件,不断上演,无辜的孩子纷纷殒命,你一个总理,难道就只会流泪吗?如果是这样的话,让马景涛当总理好了。而作为民众,一看到影帝流泪,心就软。不知是影帝的演技太好,还是我党的洗脑事业太成功。

公平与正义比太阳还要光辉???

当影帝四十五度角仰望星空,眼角流下了晶莹的泪珠,深情的说出“公平与正义比太阳还要光辉”的时候,如果有上帝能听的懂中文,不知道他会不会发笑。

2010年4月16日,福州范燕琼、吴华英、游精佑三网友诬告陷害案第三次开庭,福州警方早早拉起了三道警戒线,有近千名网友及当地百姓到现场声援,大家在现场呼喊口号“三网友无罪”。可是福州市马尾区人民法院当庭作出一审判决:以诽谤罪判处被告人范燕琼有期徒刑二年,以诽谤罪判处被告人游精佑、吴华英有期徒刑各一年。作为福建人,我为福建有这种视人命为草芥,无视公平与正义,无视法律的神圣于公正,滥用公权力与法律的法院感到丢人,也为福建的部分民众意识的觉醒感到高兴。相比与大多数的中国其他城市,福州,泉州,厦门,这些城市,经济比较发达,又有众多的台商和海外华人,还能够收听或是收看到台湾的一些电台和电视,因此这些地区的民众的公民意识发展的比较快。从几年前的厦门的PX项目就可见一斑。

很多人可能会觉的,这些事情离他们太遥远,已经远离了他们的生活,关注这些让人蛋疼的事情,既不能加薪水,也无益于买房,不如老婆孩子热炕头来的实惠。那么,我有这么一句话,我由衷的希望,你与你的父母,你的爱人,你的孩子,这辈子都能够在中国这块土地上安安稳稳的走完这一生,千万不要被敏感词搞上,千万不要被白开水,千万不要被躲猫猫,千万不要让你的孩子喝上毒牛奶,千万不要让你的孩子在有顶的教室上课,,否则,你就能够体验什么叫叫天天不应,叫地地不灵,求生不能,求死不成的感觉。纵然你富如山西煤老板,贵如北京胡与赵,也一样逃脱不了悲惨的命运。

每个人的权利无时无刻都被在侵犯着,我们自由访问网络的权利,我们言论自由的权利。我们和平集会的权利。如果说,这些权利你觉的太虚,那么,政府每年收缴的重税,我们是否从中享受到应有的权利?再退一步来说,你觉的上不了YouTube,可以上Youku。说不了64,我们可以说七一。无法到新华门前静坐,我们可以到天安门前喊祖国万岁。我们依然还是很幸福的一群人嘛。中国人是这个世界上最能够忍耐的一群人,忍了几千年了,还在忍,大有要把整群人变成忍者神龟的态势。

今天,你冷眼旁观,觉的那些声援的不明真相的群众,就像是一群不知所谓的愤青,这样做于社会改变毫无意义。那么,明日,当你的权利被侵害,你的尊严被践踏的时候,不要抱怨,不要哀叹,是你选择了当奴才的路,通向朝鲜的路,是你自己亲自铺成的。从来就没有什么救世主,自由与尊严不是从天上掉下来的,更不是统治者施舍给你的。公平与正义的追求,自由与尊严的维护,并不需要你去当陈胜吴广,更不需要你去抛头颅洒热血,只需要你投入一点点的关注,维护好你自己已经微不足道的一点点的利益。公平与正义比太阳还要光辉,这句话是个真命题,在天朝,不需要什么光亮,就能比太阳还要光辉,听说过黑太阳吗?