Какого функционального программирования нам не хватает?
Как минимум, такого:
Пишем функцию с двумя(или одним) параметрами. Первый параметр - объект, второй - его метод. Если параметр один - то это кортеж содеращий в себе объект и метод.
Вызываем с произвольным объектом и его методом. Функция выполняет метод, и возвращает его результат в виде строки, а если валится исключение, то возвращает строку, описывающую исключение.
И все это для того, чтобы было проще писать логи в логи всякие характеристики объектов, в том числе и тогда, когда объект==null :)
Можно было бы еще возвращать из функции что-то вроде Either, где Left - это результат метода, а Right - описание исключения.
Но нам, энтерпрайзным быдлокодерам функциональное программирование не положено, поэтому "пишите на чем есть, мойша иванович, и не выпендривайтесь".
Пишем функцию с двумя(или одним) параметрами. Первый параметр - объект, второй - его метод. Если параметр один - то это кортеж содеращий в себе объект и метод.
Вызываем с произвольным объектом и его методом. Функция выполняет метод, и возвращает его результат в виде строки, а если валится исключение, то возвращает строку, описывающую исключение.
И все это для того, чтобы было проще писать логи в логи всякие характеристики объектов, в том числе и тогда, когда объект==null :)
Можно было бы еще возвращать из функции что-то вроде Either, где Left - это результат метода, а Right - описание исключения.
Но нам, энтерпрайзным быдлокодерам функциональное программирование не положено, поэтому "пишите на чем есть, мойша иванович, и не выпендривайтесь".
no subject
есть какой-то объект MyObject. у него метод function multiply(a,b: integer): integer; который возвращает результат умножения своих аргументов.
Мы отдаем их в суперфункцию: SuperFunc(MyObject, myltiply), которая должна в ответ вернуть строку с результатом.
Я по прежнему не могу понять, откуда берет SuperFunc значения для a и b...
no subject
А если передать Multiply, то функция вернет функцию у которой будет два входных параметра и один выходной.
no subject
спасибо )