re: 类型系统与图灵完全[未登录] noname 2014-09-04 18:54
看了之前的留言,之前措词有些偏激了,博主有兴趣可以加入QQ群72874436一起学习Haskell
re: 类型系统与图灵完全[未登录] noname 2014-09-04 18:43
让你看你没看,给你看一下Data.Function里fix的定义
fix :: (a -> a) -> a
fix f = let x = f x in x
当然HM里的let..in..有它自己的问题
Prelude>:m +Data.Functon
Prelude Data.Function> let fact = fix (\f n -> if n == 0 then 1 else n * f (n-1))
(0.00 secs, 517488 bytes)
Prelude Data.Function> fact 4
24
Haskell不需要Y,虽然它也可以定义。这里你没有了解Haskell整个系统的结构。因为Haskell的本质是一个所有term都需要typable的类型系统加一个Y组合子,Y承载了Haskell中所有的递归语义,包括互调递归、多重递归等等,自然也承载这里的fix,你可以用fix写出所有递归的函数,也可以通过函数自己调用自己写出所有递归函数,只要语义上没差,所以你关于Y的那篇博文讨论了一堆完全没有意义的东西。
re: 类型系统与图灵完全[未登录] Noname 2014-09-03 09:51
@Noname
lambda里的Y跟Haskell里的Y是“有”区别的,打错了
re: 类型系统与图灵完全[未登录] Noname 2014-09-03 09:49
劝博主还是尽量不要写Haskell的文章了,如果要写好好读一下书。(没贬低的意思)那篇关于Y combinator的东西全都是错的,看看Data.Function里的fix怎么实现的,fix f = f (fix f),lambda里的Y跟Haskell里的Y是不区别的。这种东西\x -> x x不叫递归的定义,好像就self application,Haskell定义不了不是你说的,\x -> x x不是typable的,a ~ a -> a没法deduce,Haskell里也不需要定义这东西。
template<class T,class U>
class C<T*,U*>{};
这属于全特化还是偏特化呢?一般大部分人都认为是偏特化,但是按照上面的定义似乎应该是全特化(所有的模板参数都特化了呀)。
这种属于偏特化而非特化
re: OpenGL入门学习[未登录] noname 2013-10-26 20:20
因为要研究光线跟踪算法,所以需要opengl很耐心的看完了,然后的感谢楼主啊
re: 最简单的MFC程序[未登录] noname 2013-07-09 16:28
好东西,非常谢
class A{
int a;
};
#pragma optimize=2
int _tmain(int argc, _TCHAR* argv[])
{
auto x = new A;
x = new A();
return 0;
}
auto x = new A;
003A1000 push 4
003A1002 call dword ptr ds:[3A2090h]
x = new A();
003A1008 push 4
003A100A call dword ptr ds:[3A2090h]
003A1010 add esp,8
003A1013 test eax,eax
003A1015 je wmain+1Dh (03A101Dh)
003A1017 mov dword ptr [eax],0
return 0;
003A101D xor eax,eax
}
003A101F ret
你这完全是因为debug才有的问题, vs2012 release证明,所谓的初始化代码不会产生,其它版本应该也是一样的
re: linux fork函数学习[未登录] noname 2012-04-10 20:58
请问最后一个程序,是不是father和son的输出没有规律,第一组是father和son的组合,第二组是两个father和两个son的组合,最后一组是四个father和四个son的组合就是了吗?
re: linux fork函数学习[未登录] noname 2012-04-10 20:56
good!
re: 透明的CheckBox的代码[未登录] NoName 2010-10-22 13:46
查了半天百度,
下午google一下就找到了你.....
上面写错了一点:
createFactory::createProducts()
{
AbsFacty->CreateProductA();
AbsFacty->CreateProductA();
}
应该是:
createFactory::createProducts()
{
CurrentAbsFacty ->CreateProductA();
CurrentAbsFacty ->CreateProductA();
}
您的例子中,抽象工厂的方法用得有些不对:
// 生产产品A的第一种实现
ConcreateFactory1 *pFactory1 = new ConcreateFactory1;
AbstractProductA *pProductA = pFactory1->CreateProductA();
// 生产产品B的第二种实现
ConcreateFactory2 *pFactory2 = new ConcreateFactory2;
AbstractProductB *pProductB = pFactory2->CreateProductB();
我觉得应该是:
// 生产产品A的第一种实现
AbstractFactory*pFactory1 = new ConcreateFactory1;
AbstractProductA *pProductA = pFactory1->CreateProductA();
// 生产产品B的第二种实现
AbstractFactory*pFactory2 = new ConcreateFactory2;
AbstractProductB *pProductB = pFactory2->CreateProductB();
也就是在接收时应该是基类,AbstractFactory.这是一点.其实这样改了还是没有真正的体现抽象工厂的"封装变化"思想,体现出来的还是一个简单工厂的翻版.应该在新建一个类来完成工厂类的创建:
class createFactory
{
public:
createFactory(AbstractFactory *AbsFacty);
~createFactory();
void createProducts();
private:
AbstractFactory *CurrentAbsFacty;
}
///////////////////////////////////
createFactory::createFactory(AbstractFactory *AbsFacty)
{
CurrentAbsFacty = AbsFacty;
}
createFactory::createProducts()
{
AbsFacty->CreateProductA();
AbsFacty->CreateProductA();
}
//////////////////////////////////////
//主函数的写法:
createFactory * createFacty = new createFactory(new ConcreateFactory2);
createFacty->createProducts();
个人愚见,多多指教! liuchuanwen109@126.com
re: 孙鑫VC视频教学笔记20课[未登录] noname 2009-11-25 16:30
3Q
re: 腾讯面试中一道题[未登录] noName 2009-09-10 20:02
放在客户端就行了咯
re: memcpy的BUG[未登录] noname 2008-11-24 00:44
33行--到0就跳了吧,负以后虽然因为size_t类型转成最大32位数,但没有再次循环吧
A<B> delegateObj1(objB, (&B::FunA));
在这里类A必须了解B的类型,而委托存在的意义在于委托类与被委托的对象之间的无关性,可以参照网上一篇关于fastdelegate的文章。
template<typename T>
int funA(T * This, int (T::*delegateFun)(int), int c)
{
return (This->*delegateFun)(c);
}
可以算做委托调用的基本原理,还需要保存This和delegateFun的值才能称之为委托。
为什么不用 boost::program_options
呵呵,我用 vc2008 做的东西就不需要 vc8 的 dll。
re: 一种经典的网络游戏服务器架构[未登录] noname 2008-04-11 14:42
和SunOnline(奇迹世界)的架构差不多啊
re: 本次服务端搬平台的一些体会。[未登录] noname 2008-04-09 16:37
sleep(1)
换成sleep(0)试试
re: 网络游戏安全思考——伪随机数篇[未登录] noname 2008-04-07 00:35
@fox
是准备做反外挂系统吗?
可以参考下SD的动态加解密,防脱机外挂很NB的说
饭兄对这个dynende很熟悉的,呵呵
@Kevin Lynx
为什么每次称饭中淹为饭叔叔,他有这么大了吗?
re: 一个读取xml配置文件的通用模板 noname 2007-01-20 21:04
看起来不错.
想下载源码看看. 但是连接不可用.
能否发送到邮箱lieph(AT)163(DOT)com?
谢谢
re: VS2005SP1安装加速 noname 2007-01-08 23:09
今天刚刚装好 sp1. 不过还是收藏之
的确不错. 用 html 做界面在开发效率, 扩展性等方面都很好. 正巧这两天需要做一个程序. 界面要求比较灵活. 就试试万兄的 idea 了.
用 WTL 做了一个 demo. 因为是第一次做这样的应用, 先不考虑代码复用了. 所以没有做成 DLL. 连页面的 ExternalDispatch 都是在程序内部实现的.
既然万兄没有给出源码, 我把代码放上来. 算是狗尾续貂把. :)
http://nicoster.googlepages.com/wtlhtml.rar
lieph $(at) 163 $(dot) com
@空明流转
最后一句的意思是
问你是坐车来的, 还是走路来的.
你回答 我吃的是炸酱面.
----
"屋子里的发声的东西越多, 声音越大"
re: 通用的复合数据类型的赋值函数 noname 2006-11-30 16:32
C++ 的对象默认的赋值操作就是如此, 何必再写函数。比如:
struct foo
{
int a;
char b;
};
void main()
{
foo f, g;
f.a=f.b=0;
g = f;
}