- 浏览: 30511 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
最新评论
-
leeamen:
废话连篇,
角色分析 -
shxiao:
从google doc上复制过来就变成这个样子了,真郁闷
JfreeChart学习
文章列表
开始学习Go lang
1: 下载window version, http://code.google.com/p/gomingw/downloads/list
2: 安装
解压到D:盘
设置环境变量 GOROOT=d:/go, PATH=$PATH:%GOROOT%/bin
打开CMD,测试8g命令,go编译器中有好多命令,用数字开头,6表示64-x86架构,8表示32-x86架构,测试成功
3:写hello world
package main
import " ...
关于只是大致可以分为how, what, why这3中知识。 也就是所谓的"知、行、观"
what表示的是知识是什么,通过声明式的表示方法来表示知识
what表示的如何实现知识,属于工具类的知识,表示对知识的探索过程
why表示的知识存在理由,是知识的充分条件
Computer science is dealing with a different kind of knowledge -- Imperative or
"how to" knowledge. It is trying to capture ...
Data Abstraction, procedural abstraction
数据抽象和过程抽象的理解。
数据是要被计算的信息,过程表示对数据的操作和处理。但过程本身是数据时,过程就可以操作过程。
数据抽象
在Programming Language通常会提供基本的数据类型(数字,布尔值,字符串)和组合这些基本数据类型的抽象方式(Java中的数组和Class),通过对组合数据类型进行抽象和命名,我们就可以在抽象层次上进行工作,并不需要关心数据类型抽象的具体实现,当然抽象数据也可以和原子数据具有同样的用途来使用,例如作为参数和返回值或者对抽象数据再进行复合,也就是抽象数据类型具有闭包( ...
01.犯了错误就该诚实地认错——狡辩、诿过只会害了自己。
02.朋友之间要保持距离——这样的友谊才能长久。
03.钱追人,人追健康——有了健康,还怕挣不到钱么?
04.别轻易转行——转行的风险很高,最好不 ...
- 2009-05-21 18:47
- 浏览 554
- 评论(0)
Monads in functional programming are most often associated with the Haskell language, where they play a central role in I/O and have found numerous other uses. Most introductions to monads are currently written for Haskell programmers. However, monads can be used with any functional language, even l ...
- 2009-04-25 11:04
- 浏览 1226
- 评论(0)
ADTs in Clojure
Today on the Clojure mailing list, a user asked:
"Is the concept of Abstract Data Types useful in Clojure?
If yes, how would you implement one?"
This is an important question because coding to interfaces and abstractions, rather than concrete data, is a key aspect to writin ...
- 2009-04-25 10:18
- 浏览 1075
- 评论(0)
clojure的编译存放路径为*compile-path*,默认为classes,如果想动态改变的话可以
通过(var-set #'*compile-path* "dd"),或者通过binding (binding [*compile-path* "dd"] (;做编译))
添加类路径(add-classpath url),
查看路径信息 (seq (.getURLs (ClassLoader/getSystemClassLoader)))
- 2009-04-08 20:43
- 浏览 874
- 评论(0)
一想到去日如飞,暮年将至,怎不让人心头寒意陡升,通体冰凉?
- 2009-03-30 13:33
- 浏览 773
- 评论(0)
数据有2中抽象, 一个原子数据,另外就是复合数据。
在编程语言中对应着primitive types 和 Reference Type.
基本类型都是内置,语言直接支持,声明其变量就是在内存中直接分配内存引用,例如
var a = 1; var b = a; a = 2此时b仍然还是1,
对象应用类型,赋值是是把对象的引用引用。 所以修改a时b也会变化。
原子数据抽象单一的事务, 而复合数据把多个数据当作一个数据来使用,提高了抽象
的层次,所以能够更好的描述问题。
字符串一般比较特殊,大概是因为效率的原因吧,一般都当作语言内置类型,但是是按引用类型
来操作的,且其一般都是不可变的。
数组也是比 ...
- 2008-10-10 15:36
- 浏览 709
- 评论(0)
clojure学习
clojure通过reader来读取字符流,根据不同的读形式来产生不同的数据结构。
reader forms
1: 标识符
标识符以非数字字符开始,可是包含数字在内的字符,还有*, +, !-,_和?. /用来分割命名空间,.表示类名修饰 ...
归并排序是分而治之的典型用法,其实现大致有4个步骤
1: 如果排序列表的长度为0或1,说明已经排序,直接返回。
2:把未排序列表从中间分为2个列表
3:递归的排序2个子列表
4:合并这2个子列表
归并排序的优点:
1:在小列表上排序所需的步骤元少于大列表排序的步骤
2:从2个有序的列表中构建有序列表所需步骤远少于未排序的2个的合并步骤
function mergesort(m)
var list left, right, result
if length(m) ≤ 1
return m
var middle ...
- 2008-08-14 10:07
- 浏览 844
- 评论(0)
heap, 堆是一个特殊的基于树的数据结构,他满足堆属性,如果b是a的节点,那么key(a) >= key(b),这也暗示了键值最大的
元素在根节点,这种堆叫做大堆,另外一种情况叫小堆,一般用堆来实现优先级队列,堆有很多实现方式。
用数组实现堆,一个元素放根根节点,后2个元素放子节点,依次类推,n节点的子节点在2n+1和2n+2上,factor中的堆就是用数组实现的, java中有一个优先级队列,是个极大堆
TUPLE: heap data ;
栈stack是一种先进后出的数据结构
堆栈(the stack)是动态分配内存的区域
- 2008-04-23 17:04
- 浏览 1158
- 评论(0)
看了好多语言,发现基础都差不多,看来看去好无聊。
语言内容大致可以划分为3大类,
数字
容器
对象(对象单个个对象的抽象)
数字,
每个语言都内置了对数字操作的支持,只是有的把它当作对 ...
面向角色的分析
关注点的分离,单个现象的静,动属性
类关注对象的能力,而角色关注的是(在对象社会中)对象的职位和责任。编程是个费力的活儿,所以我们应该
尽力让单个的对象来在其社会中扮演不同的角色(职位)。
在角色分析中我们要考虑对象的环境,
角色模型关注交互的角色如何完成目标。
角色模型是拥有静,动属性的协作对象的结构化描述,属性包括,协作的目的,对象之间的关系,对象发送给
协作者的消息,以及消息是如何处理的。
角色模型表示一个受关注的有界现实。她模拟协作对象的模式(那些不变的)作为协作角色的结构。
角色模型分析过程, 把整个系统分割成单个关注 ...
对象有3个属性,使它成为简单并且有力的模型建造快,状态能够模拟内存,行为能够模拟动态过程,封装能够
隐藏对象的复杂性。
一个对象有标识,在其生命周期内是唯一的
对象有属性封装信息
对象能够和其他的对象交互通过发送或接受消息,每个消息都有接受者和发送者
消息是有目的性的意图。它告诉接受者完成某些事情确不告诉她如何做。
消息的功能由3部分组成
1: 消息是一个触发器,她使得接受对象选择自己的一个方法并执行它,执行的结构可能包括改变对象的属性,发送消息给更多的协作者还有新对象的创建。
2:消息也可能是单向数据载体,她给接受者提供一些新的数据信息。数据通过消息的参数来描述,当然,参数也可能是引用别的对象 ...