code: function set_default(obj, key, value, pred) {
          function valid_keyp(){
              return pred?          pred(obj[key], key, obj)
                   : /* default */  hasp(obj, key) }
  
          if (!valid_keyp())  obj[key] = value
          return obj[key]
      }
docs: /// Function set_default /////////////////////////////////////////////////  (obj:Obj, key:Str, value[, pred:Fn]) ↦ *mixed*  Sets the property if it does not exist in the object, or does not pass the predicate test.