Wpis z mikrobloga

Istnieje jakiś język #programowanie gdzie nie wywołuje się metod/funkcji bezpośrednio tylko przez "type matching" obsługiwany z niższego poziomu? Coś na zasadzie biologicznych komórek, które same wyłapują pasujące "parametry" z otoczenia. Np. Jeśli chcę wywołać f(2) to wystarczy, że mam obiekt z definicją f(int) oraz int=2 w tym samym scope (w uproszczeniu). Pamiętam @informatyk że się interesowałeś dziwnymi językami - spotkałeś się z czymś takim?
  • 13
@MQs tak czytam jeszcze raz to chyba źle zrozumiałem pytanie, miałem na myśli overloading funkcji, że nazywasz je tak samo i wywołuje się odpowiednia w zależności od paramsow wywołania. A żeby sama się odpalała jak zauważy latające w powietrzu parametry to nie wiem czy jest coś takiego gotowego, ale np. w PHP bez problemu możesz samodzielnie to zaimplementować (choć to raczej już takie użycie phpa którego na kursach nie uczą).
@MQs: jeśli dobrze rozumiem, to chcesz zrobić taki event handling, który by się sam obsługiwał z poziomu handlera? Czyli jeden kawałek kodu rzuca "wydarzyło się coś (123)" a jakiś wiszący i nasł#!$%@?ący inny kawałek kodu reaguje na takie wydarzenie z samego faktu, że zaistniało?
@mathijas: Pewnie proof of concept by się na czymś takim opierał, ale to nadal ręczne mapowanie (wyodrębnienie wywołań do osobnego obiektu). Chciałbym zobaczyć jakąś próbę implementacji opartej o takie samoistne wywołania (na przykład w oparciu o typy), a poza teoretycznymi porównaniami które się od czasu do czasu spotyka nie widziałem, żeby ktoś próbował.

Alan Kay: (całość)

It was probably in 1967 when someone asked me what I was doing,
@MQs: znajdziesz takie idee np. w two-way data binding, połączeniach socketowych czy sztucznej inteligencji aczkolwiek jeśli Ci chodzi o język do takuch rzeczy to raczej nie słyszałem. Problem jaki tutaj widzę to optymalizacja. W obecnym świecie wykonuje się tylko to, co ma zostać wywołane. W Twojej propozycji wszystkie obiekty musiałyby sprawdzać co jest w ich okolicy i reagować na zmiany. Zupełnie niepotrzebnie.
@MQs: co mi się jeszcze kojarzy to pub/sub jak na przykład w bazach Redis czy w pakiecie Google. Używasz wspólnego kanału jako szyny wymiany komunikatów i obiekty podpięte do kanału nadają komunikaty i reagują na komunikaty odpowiednio dla nich sformułowane. W ten sposób można by stworzyć formę komunikatu opartą na zależnościach, tagach czy czymkolwiek, tak aby "komórki" reagowały na komunikaty tylko z ich sąsiedztwa.
via Wykop Mobilny (Android)
  • 3
@MQs: Twój uproszczony przykład to scalowe implicity. Co do twojego postu to imo prolog jest najbliżej: w nim w zasadzie tworzy się tylko funkcje natomiast cała maszyneria wywołująca jest schowana w runtimie