Evaluate 1 + 1 and then 1 + "one". Is Io strongly typed or weakly typed? Support you answer with code.
Io> 1 + 1 ==> 2
Io> 1 + "one" Exception: argument 0 to method '+' must be a Number, not a 'Sequence' --------- message '+' in 'Command Line' on line 1Io is strongly typed, operands of different types will not be implicitly converted:
Io> 1 + "2" Exception: argument 0 to method '+' must be a Number, not a 'Sequence' --------- message '+' in 'Command Line' on line 1Is 0 true or false? What about the empty string? Is nil true or false? Support your answer with code.
Io> 0 and true ==> true Io> "" and true ==> true Io> nil and true ==> falseHow can you tell what slots a prototype supports?
Invoking an object in the prompt will print the supported slots:
Io> Car ==> Car_0x7fb039c9a1f0: type = "Car" vroom = method(...)The slotNames message returns the list of slots:
Io> Car slotNames ==> list(type, vroom)To get the slots defined by the parent, call the proto message:
Io> Car proto ==> Vehicle_0x7fb039c6e270: description = "Something that takes you far away" type = "Vehicle"What is the difference between = (equals), := (colon equals), and ::= (colon colon equals)? When would you use each one?
= | Assigns value to slot if it exists, otherwise raises exception |
:= | Creates slot, assigns value |
::= | Creates slot, creates setter, assigns value |
$ echo '"Hello, world!" println' > helloworld.io $ io helloworld.io Hello, world!Execute the code in a slot given its name
Unfortunately, I haven't been able to solve this one yet. I guess the intent is given a slot holding some code as a string, one should figure out a statement to execute this code.
Io> code := "\"hello\" println" ==> "hello" println
No comments:
Post a Comment