archive [ 2008ǯ02�� ]

VMware Fusion �Υ��󥹥ȡ���Ǽ��Ԥ���

Install Fails: Postflight script doesn't run �ˤ���Ȥ���ʤ�����ɡ����������Ҳ�

  1. VMware Fusion �򥢥󥤥󥹥ȡ���
    ( /Library/Application Support/VMware Fusion/Uninstall VMware Fusion )
  2. �ե���� /Library/Application Support/VMware Fusion ����
  3. �ե����� ~/Library/Preferences/com.vmware.fusion.plist ����
  4. �ե���� ~/Library/Preferences/VMware Fusion ����
  5. �Ƶ�ư

���ȤϤ⤦���٥��󥹥ȡ��뤹�������

Contact the software manufacturer for assistance.

�ʤ�Ƹ���줿�ꤷ�ƥӥӤ������ɵ��ˤ��ʤ����ˤ��ʤ���

�ե塼����󤹤�����ե塼�����

����

http://twitter.com/poafag/statuses/710061482

2008ǯ02��15�� 02:50

����ץ�

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 �ǸƤ֤��Ȥ��Ǥ��ʤ��Ȥ�����̡�̯������ǰ��

2008ǯ02��10�� 02:10
������ä��ؿ���³����

���꡼���Ȥ����ߤ����⤷�����ä��Τ��ɲõ���

�ؿ� 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 ++

2008ǯ02��08�� 12:00
���ƥ���
����������
livedoor Reader¤ËÅÐÏ¿
livedoor Blog¡Ê¥Ö¥í¥°¡Ë
Syndicate this site