На языке Ио, как вы можете увидеть реализацию "если"?

Я осматривал некоторые из 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.

Другие вопросы по тегам