metaclass: (Default)
[personal profile] metaclass
Как минимум, такого:
Пишем функцию с двумя(или одним) параметрами. Первый параметр - объект, второй - его метод. Если параметр один - то это кортеж содеращий в себе объект и метод.
Вызываем с произвольным объектом и его методом. Функция выполняет метод, и возвращает его результат в виде строки, а если валится исключение, то возвращает строку, описывающую исключение.
И все это для того, чтобы было проще писать логи в логи всякие характеристики объектов, в том числе и тогда, когда объект==null :)

Можно было бы еще возвращать из функции что-то вроде Either, где Left - это результат метода, а Right - описание исключения.

Но нам, энтерпрайзным быдлокодерам функциональное программирование не положено, поэтому "пишите на чем есть, мойша иванович, и не выпендривайтесь".

Date: 2008-12-02 04:16 am (UTC)
From: [identity profile] molnij.livejournal.com
м... если не трудно, еще одну итерацию объяснения можешь провести?
есть какой-то объект MyObject. у него метод function multiply(a,b: integer): integer; который возвращает результат умножения своих аргументов.
Мы отдаем их в суперфункцию: SuperFunc(MyObject, myltiply), которая должна в ответ вернуть строку с результатом.
Я по прежнему не могу понять, откуда берет SuperFunc значения для a и b...

Date: 2008-12-02 09:50 am (UTC)
From: [identity profile] metaclass.livejournal.com
Не, строку с результатом оно вернет, если мы ему передали объект и метод типа ToString() у которого ноль входных параметров и строка в качестве результата.
А если передать Multiply, то функция вернет функцию у которой будет два входных параметра и один выходной.

Date: 2008-12-02 12:56 pm (UTC)
From: [identity profile] molnij.livejournal.com
ага, теперь дошло :)
спасибо )

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 9th, 2025 09:17 am
Powered by Dreamwidth Studios