Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}. Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned value for function, skipping calculation when arguments are strictly the same.