- 浏览: 497876 次
- 性别:
- 来自: 上海
最新评论
-
hypercube:
markin'
配置D语言编程环境 -
qiezi:
qiezi 写道yangyang_08 写道1 ...
我的编程语言学习经历 -
qiezi:
yangyang_08 写道1、现在如果做并发服务器,楼主选用 ...
我的编程语言学习经历 -
yangyang_08:
1、现在如果做并发服务器,楼主选用什么样的语言架构?2、lua ...
我的编程语言学习经历 -
dearplain:
我也是语言爱好者,不过我一直坚持使用c。
我的编程语言学习经历
文章列表
在D语言中,一个方法你可以得到它的指针(函数指针或委托),但不能获得它的名字,这点和C++相似。
不过今天看到PyD的一个例子:
import pyd.pyd;
import std.stdio;
void hello_func() {
writefln("Hello, world!");
}
extern (C) void PydMain() {
def!(hello_func);
module_init();
}
>>> import testdll
>>> testd ...
- 2007-01-15 19:24
- 浏览 3491
- 评论(1)
前阵子论坛上有人问我D语言做函数编程怎样,老实说我没怎么想过这问题。现在想来,D语言可以有函数指针、委托、仿函数(opCall),所以它和C++基本上没什么不一样。
想起了python,虽然以前没研究过它的函数编程,不过还是搜索了一下,IBM Developer Works的“可爱的python系列”格式乱得没法看,就没继续看了。从中找出python的几个算子比如map, reduce, filter,在D语言中实现这个应该也是简单的:
R[] map(R, T)(R delegate(T) dg, T[] arr){
R[] result = new R[arr.length]; ...
- 2007-01-07 11:17
- 浏览 3860
- 评论(1)
这2个语言的比较怪怪的,我最近转换了一些twisted的源文件到D,发现有些东西直接抄过来还是不可行的。
一、参数
比如twisted的callLater:
class IReactorTime(Interface):
"""Time methods that a Reactor should implement.
"""
def callLater(self, delay, callable, *args, **kw):
"""Call a fu ...
- 2007-01-07 10:12
- 浏览 6555
- 评论(7)
D语言动态数组可以在运行期改变大小,这和C++的vector相似。似乎记得“STL源码分析”一书中提到vector的内存分配策略是倍增方式的,D语言数组是不是也使用了相同方式呢?我做了个简单的测试:
void main(){
void* ptr = null;
int[] arr = new int[0];
for (int i=0; i<33; ++i){
void* cur = cast(void*)arr;
if (cur != ptr){
...
- 2007-01-07 09:43
- 浏览 3228
- 评论(0)
What's New for D 0.178
Dec 23, 2006
New/Changed Features
Implemented Named Return Value Optimization
If the first element of an array literal is a static array, it is converted to a dynamic array.
Empty ; no longer allowed after conditional statements, see Bugzilla 576.
Bugs ...
- 2006-12-24 15:32
- 浏览 4602
- 评论(8)
引用
* Updated to DMD 0.177
* Fixes for synchronized code generation
* Better support for cross-hosted builds
* Fixed Bugzilla 307, 375, 403, 575, 578
* Applied Anders Björklund's MacOS X build patches
* SkyOS support will return when GCC 4.1.1 is supported.
64位支持不知道怎么样了,近期我会在gentoo上测试它。
- 2006-12-17 14:35
- 浏览 2801
- 评论(1)
机房对外的系统安装的是Linux,内网有一台Windows机器,想找工作把3389端口转到Linux服务器上,每次临时启用。
安装了iptables,竟然提示缺少模块,配置也比较繁琐,所以就放弃了。
想到以前用过的twisted,于是自己写了一个小工具:
from twisted.internet.protocol import Protocol, ClientFactory, ServerFactory
from twisted.internet import reactor
import sys
class ForwardServer(Protocol):
de ...
- 2006-12-16 19:39
- 浏览 6008
- 评论(1)
aardvark 写道最近一直在补Ruby,心里惦记着Rails1.2但是一直没有时间去细看。昨天看了DHH的"Discovering a world of Resources on Rails",再来看楼主这个发帖,发现楼主对这个例子本身的理解有些不完整,对RESTful的理解也有偏差。
楼主的例子看似和DHH的例子很像,但实际很不同。DHH的例子是User/Group,典型的use case是“管理员把某个用户添加到某个组”。这样的例子,从Model到Controller到View恰好是完整的一套,很清晰也很优美。这里User是操作的对象。
而User/Article ...
- 2006-12-16 10:01
- 浏览 3320
- 评论(0)
讨论:
我总觉得REST应该用于提供数据而不是页面,还是用用户和圈子作例子吧,感觉顺畅一些。
比如某个用户的页面,他选一个圈子,点击“加入”就加入了这个圈子;而圈子的管理员也可以选择用户,并点击“添加”把用户加入圈子。
这里2个页面完成的是同一个操作,都是创建一个用户-圈子的关系,但操作完以后的页面转向会不同。如果用REST来提供页面,如何来处理这些转向?另加参数?那不是搞复杂了嘛。
所以我觉得应该是浏览器上通过AJAX请求这个action,返回数据,浏览器脚本把数据处理成显示,这也是AJAX最适合的方式。
如果只提供数据,实际上不需要7种action,4种就可以了:
GET /p ...
- 2006-12-16 09:59
- 浏览 3071
- 评论(1)
简单写了点代码,把那个方程组生成树结构:
#include <iostream>
#include <string>
using namespace std;
enum Type{
TNumber,
TVariable,
TOperator
};
enum Operator{
OAdd,
OSub,
OMul,
ODiv,
OAssign,
ONone
};
class Variable{
Type type_;
const char* name_;
Operator op_;
do ...
- 2006-12-13 09:50
- 浏览 2029
- 评论(0)
看到D语言的opAssign即赋值操作符,突然想是不是能实现下面这个功能呢?以D语法写出:
auto x = new Variable;
auto y = new Variable;
// x = 10; y = 5;
x + 5 = y * 3;
x / y = 2;
简单的方程组,是否可以自动求出x和y值?
从我学习过的几种语言来考察,哪些语言可以支持这种语法呢?
1、C++
C++支持赋值操作符,不过如果我把x+5写成5+x,就必须用到全局运算符重载。要支持其它类型和Variable类型、Variable类型和其它类型、Variable和Variable的运算符 ...
- 2006-12-11 21:31
- 浏览 2509
- 评论(4)
没什么亮点,BUG修复得也不多,BUG数量始终保持在250-260个,前阵子修复BUG过快,反而引入不少新BUG,这次看来是放缓脚步了。
What's New for D 0.177
Dec 9, 2006
New/Changed Features
Casting a value v to a struct S is now rewritten as S(v).
Initializing a struct S from a value v is now rewritten as S(v).
TypeInfo now always generated for ...
- 2006-12-09 18:47
- 浏览 2275
- 评论(0)
jerryinside介绍了一个adobe的ajax框架,和当初见到rails一样,我几乎是看它一眼就爱上了。它是一个轻量级的ajax框架,以XML作为协议,目前功能还比较单一,不过几乎完全就是我所期待的。
Rails生成XML轻而易举,Rails 1.2的REST也是一项另人心动的功能,而Spry也是以资源作为操作对象,这2者结合会发生什么?我试着学习Spry的内涵,并结合Rails做点测试性应用,以确定是否值得迁移稍大点的项目到它上面。
首先建立一个项目:
rails test -d progresql
修改配置,让它正确连接到数据库,建立相应数据库。
进入项目文件夹,安装ra ...
类似struts的token,使用session保存token,调用check_token后就把session里的token清掉,所以不能重复调用。
因为有些界面可能会有多个表单,这些表单最好共用同一个token,不然提交过来的token很难验证,所以这里做了处理,不会多次生成。
module ApplicationHelper
def token_field
hidden_field_tag(:__token__, (@__token__ ||= (session[:__token__] =
Digest::SHA1.hexdigest((Time. ...
静态类型和动态类型各有长短,为何不让这2者兼得呢?
比如一段代码:
String str = "Hello, World";
dynamic str1 = str.substring(7);
dynamic str2 = str1.toLowerCase();
dynamic str3 = str2.toUpperCase();
只需要一个关键字表明它是一个动态类型,并给它加上一个wrapper类,然后把方法调用扩展成一个send方法,我假想的编译器展开后结果是这样的:
String str = "Hello, World";
Dyn ...
- 2006-12-06 09:47
- 浏览 2381
- 评论(2)