archive [ 2008ǯ02�� ]
VMware Fusion �Υ��󥹥ȡ���Ǽ��Ԥ���
Install Fails: Postflight script doesn't run �ˤ���Ȥ���ʤ�����ɡ����������Ҳ�
- VMware Fusion �򥢥󥤥󥹥ȡ���
( /Library/Application Support/VMware Fusion/Uninstall VMware Fusion ) - �ե���� /Library/Application Support/VMware Fusion ����
- �ե����� ~/Library/Preferences/com.vmware.fusion.plist ����
- �ե���� ~/Library/Preferences/VMware Fusion ����
- �Ƶ�ư
���ȤϤ⤦���٥��󥹥ȡ��뤹�������
Contact the software manufacturer for assistance.
�ʤ�Ƹ���줿�ꤷ�ƥӥӤ������ɵ��ˤ��ʤ����ˤ��ʤ���
�ե塼����󤹤�����ե塼�����
����
����ץ�
var F= function(fn){ var tmp= function(){ return fn.apply(this,arguments); }; tmp.wrap= function(callback){ var prev= fn; fn= function(){ return callback.apply(prev,arguments); }; }; return tmp; }; var my_func= F(function(str){ return '<'+str+'>'; }); my_func('hogege'); // <hogege> �� ���̤˸Ƥ٤� my_func.wrap(function(str){ return '* '+this(str)+' *'; // ���ĤǤ�Ƥ٤� }); my_func.wrap(function(str){ return '* '+this(str)+' *'; // ����Ǥ����� }); my_func('fofofo'); // * * <fofofo> * *
���δؿ���ľ�ܥ�åפ���褦�ʽ������Ǥ��롣�ȤƤ⤤����
�褯�ʤ�
������ȡ���İ�Ĥδؿ����Ȥ� wrap ����Ĥ��ȤˤʤäƤ��ޤ���
�Ǥ⡢ Function.prototype �Ϥ����ꤿ���ʤ���
�ؿ����֥������Ȥ���Ѿ����Ƥߤ��顩
call �Ȥ����Τޤ޻Ȥ��뤫�Ȼפäơ���äƤߤ���������
var F= function(){}; F.prototype= function(){}; F.prototype.valueOf= function(){ return function(){ alert('valueOf called'); }; }; var tmp= new F; tmp.call(); // valueOf called
valueOf ���ƤФ��Τ� Firefox ����餷����
tmp.call ��¸�ߤ���Τˡ�¾�Υ֥饦���Ǥ� Type error �ǸƤ֤��Ȥ��Ǥ��ʤ��Ȥ�����̡�̯������ǰ��
���꡼���Ȥ����ߤ����⤷�����ä��Τ��ɲõ���
�ؿ� F �ϥץ��ȥ����פ˲ä��Ƥ������ص��塢̾���� curry ���ѹ����褦��
var sum= function(){ var result=0; for(var i=0, n=arguments.length; i<n; i++){ result += arguments[i]; } return result; }; Function.prototype.curry= function(args){ var fn= this, self= arguments.callee, args= args || []; return function(){ if( !arguments.length) return fn.apply(this,args); else return [].push.apply(args,arguments), self.call(fn,args); }; }; sum= sum.curry(); sum(1)(2)(3)(); // 6
������������
�ؿ���������줿�����Ǥΰ����θĿ��ϡ��ʸ��ꤵ��Ƥ���С� this.length ����������Τ�
var adder= function(a,b,c){ return a+b+c; } Function.prototype.curry= function(args){ var fn= this, self= arguments.callee, args= args || []; return function(){ [].push.apply(args,arguments); if( args.length >= fn.length) return fn.apply(this,args); else return self.call(fn,args); }; }; var add= adder.curry(); add(1)(2)(3); // 6 �� ���å�������ʤ���
�ʤ�ƽñ¤¤ï¿½ï¿½ï¿½ï¿½ï¿½Ç¤ï¿½ï¿½ë¤¼ï¿½ï¿½ �Ȥ������Ȥ� Self-currying JavaScript functions �����Τä���������������
û�������ɤʤΤǤ��Τޤް��Ѥ��Ƥ��ޤ��������֤�����ʤ������������֤�ġ�
Function.prototype.toSelfCurrying = function(n) { n = n || this.length; var method = this; return function() { if (arguments.length >= n) return method.apply(this, arguments); return method.curry.apply(arguments.callee, arguments); }; }; var add = adder.toSelfCurrying(); add(1)(2)(3) // --> 6 add(7,8)(23) // --> 38
������������� prototype.js �� Function.prototype.curry ��ȤäƤ롣����ʤ�ġ�
Function.prototype.curry= function() { if (!arguments.length) return this; var __method = this, args = $A(arguments); return function() { return __method.apply(this, args.concat($A(arguments))); } }
���ʤߤˤ����Ʊ����
Function.prototype.curry = function () { var args = arguments; var self = this; return function () { Array.prototype.unshift.apply(arguments, args); return self.apply(this, arguments); }; };
�Ȥ��� curry �ޤǤʤ顢���� JavaScript �ǤΥ��꡼����ή�Ԥä��Ȥ��ˡ� nanto_vi ���󤬽񤤤Ƥ��� ��
�ޤȤ�
���å���Ĥʤ��ƽ񤱤�Τ���������
���ȵ����Ǥϡ������ self-currying �ȸ��äƤ�����
�񤷤��⡢Ǥ�դθĿ��ΰ������б�������ʤ顢���κǽ�˺�ä����Ѥʴؿ��פϴְ㤤�Ǥ�ʤ��ä���
JavaScript ++