отправка функции / процедуры и многомерного массива в подпрограмму в smalltalk - PullRequest
0 голосов
/ 30 июня 2011

В Smalltalk есть функции или процедуры?Можно ли отправить функцию или процедуру в подпрограмму?

И еще один вопрос: можно ли отправить многомерные массивы в подпрограмму?

Ответы [ 3 ]

4 голосов
/ 30 июня 2011

Я думаю, что не понял вашего вопроса. В Smalltalk нет ничего похожего на функции, процедуры или подпрограммы. Это все об объектах и ​​сообщениях. Реализация сообщений называется методом.

Методы представлены как экземпляры класса CompiledMethod. Следовательно, поскольку они являются объектами, их можно передавать по параметрам, сохранять в переменных и т. Д.

многомерный массив ?? У вас есть класс Matrix. Это то, что вы хотите?

Я бы порекомендовал вам прочитать первые главы книги Pharo By Example. Это поможет вам получить представление.

http://pharobyexample.org/

1 голос
/ 01 июля 2011

Да, пожалуйста, прочитайте книгу, потому что ваши вопросы показывают почти полное отсутствие знаний в разговоре.В smalltalk есть только несколько понятий: объекты и сообщения.Методы реализуют поведение для определенных сообщений.

Вам нужен специальный объект - замыкание.Вы можете передать замыкание в качестве аргумента в каком-либо сообщении (или сохранить его в каком-либо объекте) и оценить его в любой момент.

1 голос
/ 01 июля 2011

В Smalltalk блоки похожи на анонимные функции. Вы можете передавать блоки в качестве аргумента в сообщении так же, как вы передаете любой другой объект в качестве аргумента.

Но вы обязательно должны прочитать книгу, предложенную Мариано, чтобы выучить основные понятия языка.

...