Skip to main content
deleted 449 characters in body
Source Link
user1028880
user1028880

all of them are not nessarynecessary to implement Reflection (computer programming) at least for this topic.

const isPrimitive = val => (val !== Object(val));

const toObj = p => !isPrimitive(p)
  ? p //object return
  : (typeof (p) === "boolean")
    ? new Boolean(p)
    : (typeof (p) === "number")
      ? new Number(p)
      : (typeof (p) === "string")
        ? new String(p)
        : p; //Symbol()

console.log(toObj(true));
console.log(toObj(7));
console.log(toObj("hello"));

const selfAware = i => i[i] = i;
const isAware = i => (i[i] === i);

const I = i => (i === I) || (i == null)
  ? i
  : selfAware(toObjObject(i));

const amI = i => (i === I)
  ? true
  : (i == null)
    ? false
    : isAware(i);

const ss = I(6);

console.log(ss);

console.log(ss[ss]);
//self-similarity
console.log(ss[ss][ss]);


const obj1 = {
  a: 2
};
const obj2 = I(obj1);
console.log(obj1);
console.log(obj2);

console.log(
  I("Hello world!").toString() //Yes, it works!
);

console.log(I(1) + I(2)); //3

console.log(
  (I) //[Function: I]
);
console.log(
  (I)(I) //[Function: I]
);
console.log(
  (I)(I)(I) //[Function: I]
);
console.log(
  (I)(I)(I)(I) //[Function: I]
);
console.log("============================");


console.log(
  amI(I) //true
  , amI(1) // false
  , amI([]) // false
  , amI({}) // false
  , amI(x => x) // false
  , amI(true) // false
  , amI(false) // false
  , amI(undefined) // false
  , amI(null) // false
);

console.log(
  amI(I(I)) // true
  , amI(I(1)) // true
  , amI(I([])) // true
  , amI(I({})) // true
  , amI(I(x => x)) // true
  , amI(I(true)) // true
  , amI(I(false)) // true
  , amI(I(undefined)) // false
  , amI(I(null)) // false
);

all of them are not nessary to implement Reflection (computer programming) at least for this topic.

const isPrimitive = val => (val !== Object(val));

const toObj = p => !isPrimitive(p)
  ? p //object return
  : (typeof (p) === "boolean")
    ? new Boolean(p)
    : (typeof (p) === "number")
      ? new Number(p)
      : (typeof (p) === "string")
        ? new String(p)
        : p; //Symbol()

console.log(toObj(true));
console.log(toObj(7));
console.log(toObj("hello"));

const selfAware = i => i[i] = i;
const isAware = i => (i[i] === i);

const I = i => (i === I) || (i == null)
  ? i
  : selfAware(toObj(i));

const amI = i => (i === I)
  ? true
  : (i == null)
    ? false
    : isAware(i);

const ss = I(6);

console.log(ss);

console.log(ss[ss]);
//self-similarity
console.log(ss[ss][ss]);


const obj1 = {
  a: 2
};
const obj2 = I(obj1);
console.log(obj1);
console.log(obj2);

console.log(
  I("Hello world!").toString() //Yes, it works!
);

console.log(I(1) + I(2)); //3

console.log(
  (I) //[Function: I]
);
console.log(
  (I)(I) //[Function: I]
);
console.log(
  (I)(I)(I) //[Function: I]
);
console.log(
  (I)(I)(I)(I) //[Function: I]
);
console.log("============================");


console.log(
  amI(I) //true
  , amI(1) // false
  , amI([]) // false
  , amI({}) // false
  , amI(x => x) // false
  , amI(true) // false
  , amI(false) // false
  , amI(undefined) // false
  , amI(null) // false
);

console.log(
  amI(I(I)) // true
  , amI(I(1)) // true
  , amI(I([])) // true
  , amI(I({})) // true
  , amI(I(x => x)) // true
  , amI(I(true)) // true
  , amI(I(false)) // true
  , amI(I(undefined)) // false
  , amI(I(null)) // false
);

all of them are not necessary to implement Reflection (computer programming) at least for this topic.

const selfAware = i => i[i] = i;
const isAware = i => (i[i] === i);

const I = i => (i === I) || (i == null)
  ? i
  : selfAware(Object(i));

const amI = i => (i === I)
  ? true
  : (i == null)
    ? false
    : isAware(i);

const ss = I(6);

console.log(ss);

console.log(ss[ss]);
//self-similarity
console.log(ss[ss][ss]);


const obj1 = {
  a: 2
};
const obj2 = I(obj1);
console.log(obj1);
console.log(obj2);

console.log(
  I("Hello world!").toString() //Yes, it works!
);

console.log(I(1) + I(2)); //3

console.log(
  (I) //[Function: I]
);
console.log(
  (I)(I) //[Function: I]
);
console.log(
  (I)(I)(I) //[Function: I]
);
console.log(
  (I)(I)(I)(I) //[Function: I]
);
console.log("============================");


console.log(
  amI(I) //true
  , amI(1) // false
  , amI([]) // false
  , amI({}) // false
  , amI(x => x) // false
  , amI(true) // false
  , amI(false) // false
  , amI(undefined) // false
  , amI(null) // false
);

console.log(
  amI(I(I)) // true
  , amI(I(1)) // true
  , amI(I([])) // true
  , amI(I({})) // true
  , amI(I(x => x)) // true
  , amI(I(true)) // true
  , amI(I(false)) // true
  , amI(I(undefined)) // false
  , amI(I(null)) // false
);
added 1 character in body
Source Link
user1028880
user1028880
const isPrimitive = val => (val !== Object(val));

const toObj = p => !isPrimitive(p)
  ? p //object return
  : (typeof (p) === "boolean")
    ? new Boolean(p)
    : (typeof (p) === "number")
      ? new Number(p)
      : (typeof (p) === "string")
        ? new String(p)
        : p; //Symbol()

console.log(toObj(true));
console.log(toObj(7));
console.log(toObj("hello"));

const selfAware = i => i[i] = i;
const isAware = i => (i[i] === i);

const I = i => (i === I) || (i == null)
  ? i
  : selfAware(toObj(i));

const isIamI = i => (i === I)
  ? true
  : (i == null)
    ? false
    : isAware(i);

const ss = I(6);

console.log(ss);

console.log(ss[ss]);
//self-similarity
console.log(ss[ss][ss]);


const obj1 = {
  a: 2
};
const obj2 = I(obj1);
console.log(obj1);
console.log(obj2);

console.log(
  I("Hello world!").toString() //Yes, it works!
);

console.log(I(1) + I(2)); //3

console.log(
  (I) //[Function: I]
);
console.log(
  (I)(I) //[Function: I]
);
console.log(
  (I)(I)(I) //[Function: I]
);
console.log(
  (I)(I)(I)(I) //[Function: I]
);
console.log("============================");


console.log(
  isIamI(I) //true
  , isIamI(1) // false
  , isIamI([]) // false
  , isIamI({}) // false
  , isIamI(x => x) // false
  , isIamI(true) // false
  , isIamI(false) // false
  , isIamI(undefined) // false
  , isIamI(null) // false
);

console.log(
  isIamI(I(I)) // true
  , isIamI(I(1)) // true
  , isIamI(I([])) // true
  , isIamI(I({})) // true
  , isIamI(I(x => x)) // true
  , isIamI(I(true)) // true
  , isIamI(I(false)) // true
  , isIamI(I(undefined)) // false
  , isIamI(I(null)) // false
);

 
const isPrimitive = val => (val !== Object(val));

const toObj = p => !isPrimitive(p)
  ? p //object return
  : (typeof (p) === "boolean")
    ? new Boolean(p)
    : (typeof (p) === "number")
      ? new Number(p)
      : (typeof (p) === "string")
        ? new String(p)
        : p; //Symbol()

console.log(toObj(true));
console.log(toObj(7));
console.log(toObj("hello"));

const selfAware = i => i[i] = i;
const isAware = i => (i[i] === i);

const I = i => (i === I) || (i == null)
  ? i
  : selfAware(toObj(i));

const isI = i => (i === I)
  ? true
  : (i == null)
    ? false
    : isAware(i);

const ss = I(6);

console.log(ss);

console.log(ss[ss]);
//self-similarity
console.log(ss[ss][ss]);


const obj1 = {
  a: 2
};
const obj2 = I(obj1);
console.log(obj1);
console.log(obj2);

console.log(
  I("Hello world!").toString() //Yes, it works!
);

console.log(I(1) + I(2)); //3

console.log(
  (I) //[Function: I]
);
console.log(
  (I)(I) //[Function: I]
);
console.log(
  (I)(I)(I) //[Function: I]
);
console.log(
  (I)(I)(I)(I) //[Function: I]
);
console.log("============================");


console.log(
  isI(I) //true
  , isI(1) // false
  , isI([]) // false
  , isI({}) // false
  , isI(x => x) // false
  , isI(true) // false
  , isI(false) // false
  , isI(undefined) // false
  , isI(null) // false
);

console.log(
  isI(I(I)) // true
  , isI(I(1)) // true
  , isI(I([])) // true
  , isI(I({})) // true
  , isI(I(x => x)) // true
  , isI(I(true)) // true
  , isI(I(false)) // true
  , isI(I(undefined)) // false
  , isI(I(null)) // false
);

 
const isPrimitive = val => (val !== Object(val));

const toObj = p => !isPrimitive(p)
  ? p //object return
  : (typeof (p) === "boolean")
    ? new Boolean(p)
    : (typeof (p) === "number")
      ? new Number(p)
      : (typeof (p) === "string")
        ? new String(p)
        : p; //Symbol()

console.log(toObj(true));
console.log(toObj(7));
console.log(toObj("hello"));

const selfAware = i => i[i] = i;
const isAware = i => (i[i] === i);

const I = i => (i === I) || (i == null)
  ? i
  : selfAware(toObj(i));

const amI = i => (i === I)
  ? true
  : (i == null)
    ? false
    : isAware(i);

const ss = I(6);

console.log(ss);

console.log(ss[ss]);
//self-similarity
console.log(ss[ss][ss]);


const obj1 = {
  a: 2
};
const obj2 = I(obj1);
console.log(obj1);
console.log(obj2);

console.log(
  I("Hello world!").toString() //Yes, it works!
);

console.log(I(1) + I(2)); //3

console.log(
  (I) //[Function: I]
);
console.log(
  (I)(I) //[Function: I]
);
console.log(
  (I)(I)(I) //[Function: I]
);
console.log(
  (I)(I)(I)(I) //[Function: I]
);
console.log("============================");


console.log(
  amI(I) //true
  , amI(1) // false
  , amI([]) // false
  , amI({}) // false
  , amI(x => x) // false
  , amI(true) // false
  , amI(false) // false
  , amI(undefined) // false
  , amI(null) // false
);

console.log(
  amI(I(I)) // true
  , amI(I(1)) // true
  , amI(I([])) // true
  , amI(I({})) // true
  , amI(I(x => x)) // true
  , amI(I(true)) // true
  , amI(I(false)) // true
  , amI(I(undefined)) // false
  , amI(I(null)) // false
);
Source Link
user1028880
user1028880

It turns out,

  • Symbol()
  • Object.assign()
  • Proxy

all of them are not nessary to implement Reflection (computer programming) at least for this topic.

See my code below:

const isPrimitive = val => (val !== Object(val));

const toObj = p => !isPrimitive(p)
  ? p //object return
  : (typeof (p) === "boolean")
    ? new Boolean(p)
    : (typeof (p) === "number")
      ? new Number(p)
      : (typeof (p) === "string")
        ? new String(p)
        : p; //Symbol()

console.log(toObj(true));
console.log(toObj(7));
console.log(toObj("hello"));

const selfAware = i => i[i] = i;
const isAware = i => (i[i] === i);

const I = i => (i === I) || (i == null)
  ? i
  : selfAware(toObj(i));

const isI = i => (i === I)
  ? true
  : (i == null)
    ? false
    : isAware(i);

const ss = I(6);

console.log(ss);

console.log(ss[ss]);
//self-similarity
console.log(ss[ss][ss]);


const obj1 = {
  a: 2
};
const obj2 = I(obj1);
console.log(obj1);
console.log(obj2);

console.log(
  I("Hello world!").toString() //Yes, it works!
);

console.log(I(1) + I(2)); //3

console.log(
  (I) //[Function: I]
);
console.log(
  (I)(I) //[Function: I]
);
console.log(
  (I)(I)(I) //[Function: I]
);
console.log(
  (I)(I)(I)(I) //[Function: I]
);
console.log("============================");


console.log(
  isI(I) //true
  , isI(1) // false
  , isI([]) // false
  , isI({}) // false
  , isI(x => x) // false
  , isI(true) // false
  , isI(false) // false
  , isI(undefined) // false
  , isI(null) // false
);

console.log(
  isI(I(I)) // true
  , isI(I(1)) // true
  , isI(I([])) // true
  , isI(I({})) // true
  , isI(I(x => x)) // true
  , isI(I(true)) // true
  , isI(I(false)) // true
  , isI(I(undefined)) // false
  , isI(I(null)) // false
);