/
ColdCore-3.0a9.02/
ColdCore-3.0a9.02/src/
new object $help_coldc_types_frobs: $help_coldc_types;

var $has_name name = ['prop, "Frob", "Frob"];
var $help_node body = <$ctext_frob, [[<$format, ["p", [], [], 'do_p]>, <$format, ["i", [], ["Frobs"], 'do_i]>, " are an abstract data type used for dynamically handling data when using it as the receiver of a ", <$format, ["link", [["node", "$help_coldc_mcall"]], ["method-call"], 'do_link]>, " expression. Normally, when data is used as the receiver for a method call, the interpreter will actually lookup and use an object with an object name that is the same as the type of data being used (such as an object named ", <$format, ["tt", [], ["$string"], 'do_tt]>, " if the data is a ", <$format, ["tt", [], ["'string"], 'do_tt]>, "). In the case of a frob, the receiver is specified within the frob, as the ", <$format, ["i", [], ["Frob Class"], 'do_i]>, ". Frobs also give the ability to specify special method to handle the call with. ", <$format, ["np", [], [], 'do_np]>, " Frobs are useful for grouping, abstracting and encapsulating a set of similar data by associating it with a handler object. Frobs are constructed by enclosing the class and representation within a less-than sign (", <$format, ["tt", [], ["<"], 'do_tt]>, ") and a greater-than sign (", <$format, ["tt", [], [">"], 'do_tt]>, "), seperated by a comma. All of the following are valid frobs: ", <$format, ["dfn", [], ["<$thing_frob, #[['desc, \"worthless\"], ['name, \"coin\"]]>", <$format, ["br", [], [], 'do_br]>, "<$coins, [923]>", <$format, ["br", [], [], 'do_br]>, "<#73, [1, 2]>"], 'do_dfn]>, <$format, ["p", [], [], 'do_p]>, "The usefullness of a frob becomes apparent when used as the recipient in a ", <$format, ["link", [["node", "$help_coldc_mcall"]], ["method-call"], 'do_link]>, " expression. In this instance the ", <$format, ["i", [], ["frob class"], 'do_i]>, " becomes the recipient and the ", <$format, ["i", [], ["frob value"], 'do_i]>, " becomes the first argument sent to the method. For instance, the following two method calls are equivalent:", <$format, ["p", [], [], 'do_p]>, <$format, ["dfn", [], ["(<$list, [1, 2, 3]>).reverse('do_this)", <$format, ["br", [], [], 'do_br]>, "$list.reverse([1, 2, 3], 'do_this)"], 'do_dfn]>, <$format, ["p", [], [], 'do_p]>, "Furthermore, if a handler is used, the handler is called as the method, and the expected method is sent as a symbol argument. The following two method calls are equivalent:", <$format, ["p", [], [], 'do_p]>, <$format, ["dfn", [], ["(<$obj, #[], 'handle_it>).tell(\"foof\")", <$format, ["br", [], [], 'do_br]>, "$obj.handle_it(#[], 'tell, \"foof\")"], 'do_dfn]>, <$format, ["p", [], [], 'do_p]>, "Because of the difference in how a frob method is called, it is possible to define a method as a frob-only method. If a method is defined as a frob-only method it is ", <$format, ["i", [], ["only"], 'do_i]>, " called when called by a frob. Calling it in the standard syntax would not retrieve the frob-only method, but would instead look for the same method further up the ancestor heirarchy. For more information see ", <$format, ["link", [["node", "$help_coldc_methods"]], ["Defining Methods"], 'do_link]>, ". ", <$format, ["np", [], [], 'do_np]>, "Frobs are always logically true. ", <$format, ["np", [], [], 'do_np]>, "See Also: ", <$format, ["link", [["node", "$help_func_class"]], ["frob_class()"], 'do_link]>, ", ", <$format, ["link", [["node", "$help_func_frob_value"]], ["frob_value()"], 'do_link]>, " and ", <$format, ["link", [["node", "$help_func_frob_handler"]], ["frob_handler()"], 'do_link]>], #[['links, #[["method-call", "$help_coldc_mcall"], ["Defining Methods", "$help_coldc_methods"], ["frob_class()", "$help_func_class"], ["frob_value()", "$help_func_frob_value"], ["frob_handler()", "$help_func_frob_handler"]]]]]>;
var $help_node index = $help_index_driver;
var $help_node links = #[["method-call", $help_coldc_mcall], ["Defining Methods", $help_coldc_methods], ["frob_class()", $help_func_class], ["frob_value()", $help_func_frob_value], ["frob_handler()", $help_func_frob_handler]];
var $help_node nolist = 0;
var $root created_on = 853698066;
var $root flags = ['variables, 'methods, 'code, 'core];
var $root inited = 1;
var $root managed = [$help_coldc_types_frobs];
var $root manager = $help_coldc_types_frobs;