На языке Ио, как вы можете увидеть реализацию "если"?
Я осматривал некоторые из Core и Object, используя "getSlot("имя метода"), чтобы увидеть, как были реализованы некоторые фундаментальные методы. Мне было любопытно, как был написан и опробован метод if
Io> Object getSlot("if")
==> Object_if()
Io> Object getSlot("Object_if()")
==> nil
Ни один из них не был информативным. Есть ли способ отразить / проверить / напечатать это (и другие словаObject_wordishword())?
1 ответ
Решение
Недавно я выступил с докладом в одной из групп в Нью-Йорке, который включал в себя if
если вам интересно про механику. Вы можете увидеть это здесь.
Точнее, когда вы видите:
==> Object_if()
В REPL, это говорит о том, что if
является символом, связанным с объектом Object
который реализован в C. То есть, "метод" на самом деле CFunction
объект, а не Block
объект. Только Block
объекты показывают свой источник в REPL.