ФЯ и полиморфизм
От: Аноним  
Дата: 16.09.06 20:32
Оценка:
Сразу скажу, что про ФЯ не знаю практически ничего, но есть большое желание разобраться. Открыл вот недавно документацию по Erlang — и сразу запнулся... Да, на первый взгляд, все там и хорошо, и красиво, но как только пробую "примерить" Erlang к чему-то "жизненному", сразу понимаю, что чего-то я тут не понимаю.
Впрочем, перейду к делу. Вот простейшая задача, которая элементрано решается на C++ (как впрочем, и любом другом ООП языке):
Есть приложение, которое работает с базой данных. Хочется, чтобы в зависимости от аргументов командной строки, оно конектилось либо к.. ммм.. ну пусть будет mysql, либо к oracle.
В "обычном" языке я б сделал нечто подобное:

class Driver
{
public:
  virtual void connect() = 0;
};

class MysqlDriver : public Driver {}; //implements connect() using some mysql API calls.
class OracleDriver : public Driver {}; //implements connect() using some oracle API calls.

И, наконец, 
class DriverFactory
{
public:
  static Driver * createDriver( string name ) //creates necessary driver
  {
    Driver * driver = 0;
    if("mysql" == name ) driver = new MysqlDriver();
    else if( "oracle" == name ) driver = OracleDriver();
    else throw 1;
    return driver;
  }
};


Внимание, вопрос: как подобная задача решается с помощью функциональных языков??
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.