Thread View: pl.comp.objects
10 messages
10 total messages
Started by paweł
Sun, 16 Jul 2006 01:05
Kawałek funkcyjny w programie obiektowym (Jess?)
Author: paweł
Date: Sun, 16 Jul 2006 01:05
Date: Sun, 16 Jul 2006 01:05
22 lines
1847 bytes
1847 bytes
witam, Znacie może jakąś wartą polecenia bibliotekę/implementację Scheme lub jakiegoś inszego Lispa, żeby można było zagnieżdżać kawaki kodu napisane funkcyjnie/deklaratywnie w aplikacjach Javy? Póki co jest Jess (dosyć wyspecjalizowany podzbiór Lispa, javowa implementacja CLIPSa), ale on raczej poza tworzeniem systemów regułowych nie pozwala chyba na programowanie funkcyjne w nieco szerszym aspekcie? A może się mylę? (aplikacja ma mieć zagnieżdżony dosyć zaawansowany parser, ze zmieniającymi się schematami, wg których ma on parsować dane). Jess ma tę świetną zaletę, że może korzystać bezpośrednio z klas javowych. Może jest coś podobnego opartego na Scheme? A może ktoś zetknął się z Jessem i pisał w nim coś więcej niż proste reguły i fakty? Jeśli nie jest on dużo uboższy niż Scheme, to może nie warto kombinować. pozdrawiam i dzięki za podpowiedź. paweł. -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: A.L.
Date: Sun, 16 Jul 2006 02:40
Date: Sun, 16 Jul 2006 02:40
38 lines
2310 bytes
2310 bytes
On Sun, 16 Jul 2006 01:05:54 +0000 (UTC), " paweł" <pawellt.SKASUJ@gazeta.pl> wrote: >witam, > >Znacie może jakąś wartą polecenia bibliotekę/implementację Scheme lub jakiegoś >inszego Lispa, żeby można było zagnieżdżać kawaki kodu napisane >funkcyjnie/deklaratywnie w aplikacjach Javy? > >Póki co jest Jess (dosyć wyspecjalizowany podzbiór Lispa, javowa implementacja >CLIPSa), ale on raczej poza tworzeniem systemów regułowych nie pozwala chyba >na programowanie funkcyjne w nieco szerszym aspekcie? A może się mylę? Nie mylisz sie. Mozna go uzywac jako jezyk skryptowy tez. > >Jess ma tę świetną zaletę, że może korzystać bezpośrednio z klas javowych. >Może jest coś podobnego opartego na Scheme? A może ktoś zetknął się z Jessem i >pisał w nim coś więcej niż proste reguły i fakty? Jak sie zaprzec, to mozna. Ale byl on zaprojektowany do czegos innego wiec nie warto sie wysilac. A po co ci programowanie funkcyjne w Javie?... Ale jak ci juz koniecznie potrzebne, zobacz Jatha: "Jatha is a Java library that implements a large subset of Common LISP, including most of the datatypes (e.g. packages, bignums). The API allows access to LISP from Java. Jatha is useful as a fast, embedded LISP language, or as a standalone LISP...." http://sourceforge.net/projects/jatha/ A.L. P.S> Disclaimer: Nie sprawdzalem co to-to jest warte
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: rajm
Date: Mon, 17 Jul 2006 11:08
Date: Mon, 17 Jul 2006 11:08
21 lines
1705 bytes
1705 bytes
> http://sourceforge.net/projects/jatha/ > Kiedyś trochę się tym bawiłem. Minusem jest fakt, że jatha nie ma nawet zaimplementowanych funkcji lambda. Ma też kilka innych braków, utrudniających nieco programowanie funkcyjne. Moim zdaniem mając Jessa i Javę możesz zrobić na prawdę dużo. Jess (od wersji 7.X) posiada funkcje lambda, możesz w nim też tworzyć nowe funkcje i przekazywać je jako parametry innych funkcji, Masz też zaawansowane operacje na listach. W razie konieczności możesz w każdej chwili wywołać Javę, która zrobi resztę. Jednym słowem kawałek możesz zaimplementować funkcyjnie, kawałek imperatywnie-obiektowo. No i Jess jest szybki. Zerknij też na to: http://www.gnu.org/software/kawa/ Pozdrawiam -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: rajm
Date: Mon, 17 Jul 2006 11:18
Date: Mon, 17 Jul 2006 11:18
17 lines
1539 bytes
1539 bytes
BTW takich multiparadygmatowych aplikacji, to w jaki sposób testujecie np. takie kawałki deklaratywne? (czy to prologowe, czy lispowe właśnie). Chodzi mi o testy typu whitebox. W typowych, imperatywnych językach (np. obiektowych) to wiadomo; Są testy pokrycia kodu, są asercje, do większych kawałków wykonuje się testy jednostkowe np. JUnitem. Obiekty dostają coś na wejściu, patrzymy co zwracają na wyjściu. W przypadku softu lispowego, czy tym bardziej prologowego specyfika działania jest zgoła inna. Są na to jakieś oddzielne narzędzia czy metodyki? Pozdrawiam -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: A.L.
Date: Mon, 17 Jul 2006 12:31
Date: Mon, 17 Jul 2006 12:31
20 lines
1633 bytes
1633 bytes
On Mon, 17 Jul 2006 11:18:17 +0000 (UTC), " rajm" <rjmnd.WYTNIJ@gazeta.pl> wrote: >BTW takich multiparadygmatowych aplikacji, to w jaki sposób testujecie np. >takie kawałki deklaratywne? (czy to prologowe, czy lispowe właśnie). Chodzi mi >o testy typu whitebox. > >W typowych, imperatywnych językach (np. obiektowych) to wiadomo; Są testy >pokrycia kodu, są asercje, do większych kawałków wykonuje się testy >jednostkowe np. JUnitem. Obiekty dostają coś na wejściu, patrzymy co zwracają >na wyjściu. > >W przypadku softu lispowego, czy tym bardziej prologowego specyfika działania >jest zgoła inna. Są na to jakieś oddzielne narzędzia czy metodyki? > Prolog tez dziala w ten sposob ze ma cos na wejsciu i generuje cos na wyjsciu. Nie znam inengo sposobu testowania niz ten wlasnie. A.L.
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: A.L.
Date: Mon, 17 Jul 2006 12:42
Date: Mon, 17 Jul 2006 12:42
25 lines
2109 bytes
2109 bytes
On Mon, 17 Jul 2006 11:08:54 +0000 (UTC), " rajm" <rjmnd.WYTNIJ@gazeta.pl> wrote: >> http://sourceforge.net/projects/jatha/ >> > >Kiedyś trochę się tym bawiłem. Minusem jest fakt, że jatha nie ma >nawet zaimplementowanych funkcji lambda. Ma też kilka innych braków, >utrudniających nieco programowanie funkcyjne. > >Moim zdaniem mając Jessa i Javę możesz zrobić na prawdę dużo. >Jess (od wersji 7.X) posiada funkcje lambda, możesz w nim też >tworzyć nowe funkcje i przekazywać je jako parametry innych funkcji, >Masz też zaawansowane operacje na listach. W razie konieczności możesz >w każdej chwili wywołać Javę, która zrobi resztę. Jednym słowem kawałek >możesz zaimplementować funkcyjnie, kawałek imperatywnie-obiektowo. >No i Jess jest szybki. Byly jakies problemy z dostepem do klas Javy z poziomu Jessa, juz nei pamietam szczegolow, wszakze pamietam ze ten dostep byl ograniczony. Obiecywano to poprawic w nowej wersji Jessa, ale nie wiem czy ta wersja sie juz ukazala. Jakis czas temu sie tym zajmowalem... A.L.
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: Marcin Stefaniak
Date: Sat, 29 Jul 2006 07:18
Date: Sat, 29 Jul 2006 07:18
31 lines
2197 bytes
2197 bytes
rajm <rjmnd.WYTNIJ@gazeta.pl> napisał(a): > W typowych, imperatywnych językach (np. obiektowych) to wiadomo; Są testy > pokrycia kodu, są asercje, do większych kawałków wykonuje się testy > jednostkowe np. JUnitem. > Obiekty dostają coś na wejściu, patrzymy co zwracają > na wyjściu. A to akurat wyglada jak testy typu blackbox. Poza tym nie "obiekty", a ich metody cos zwracaja na wyjsciu. A w jezykach funkcyjnych, to funkcje. > W przypadku softu lispowego, czy tym bardziej prologowego specyfika działania jest zgoła inna. Są na to jakieś oddzielne narzędzia czy metodyki? Ja bym to ujal tak: Jasne jest w jaki sposob testowac kod w jezykach funkcyjnych (wiadomo, funkcja dla danego wejscia ma dawac jakies wyjscie), rowniez testy white-box, statyczna analiza jest latwiejsza (no bo prosciej jest deklaratywnie, co nie?). W przypadku softu obiektowego, czy tym bardziej obiektowo-zorientowanego, specyfika jest zgola inna. Ale pewnie sa na to jakies pododbne narzedzia czy metodyki. Jedno tylko czasem bywa troszke trudniejsze. Nie jest latwo dorobic "asercje" w czysto funkcyjnym kawalku np. w Haskellu - trzeba kawal kodu zrefaktorowac zeby nadac mu odpowiednia monade -MS -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: Marcin 'Qrczak' Kowalczyk
Date: Sat, 29 Jul 2006 09:07
Date: Sat, 29 Jul 2006 09:07
14 lines
1886 bytes
1886 bytes
"Marcin Stefaniak" <matmis.WYTNIJ@gazeta.pl> writes:
> Jedno tylko czasem bywa troszke trudniejsze. Nie jest latwo dorobic
> "asercje" w czysto funkcyjnym kawalku np. w Haskellu - trzeba kawal
> kodu zrefaktorowac zeby nadac mu odpowiednia monade
Jeśli asercja ma kończyć program (albo jeśli wystarczy, że będzie
łapalna w GHC, a nie w standardowym Haskellu), to jest łatwo: funkcją
error.
--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: Piotr Dembiński
Date: Sat, 29 Jul 2006 10:09
Date: Sat, 29 Jul 2006 10:09
14 lines
1371 bytes
1371 bytes
"Marcin Stefaniak" <matmis.WYTNIJ@gazeta.pl> writes: [ciap] > Nie jest latwo dorobic "asercje" w czysto funkcyjnym kawalku np. > w Haskellu - trzeba kawal kodu zrefaktorowac zeby nadac mu odpowiednia > monade Popraw mnie, jeśli się mylę, ale Haskell jest silnie typowany, więc w wielu przypadkach zamiast asercji bardziej naturalne byłoby stosowanie odpowiednich typów. -- http://www.piotr.dembiński.prv.pl
Re: Kawałek funkcyjny w programie obiektowym (Jess?)
Author: Marcin Stefaniak
Date: Tue, 15 Aug 2006 00:44
Date: Tue, 15 Aug 2006 00:44
14 lines
1467 bytes
1467 bytes
pdemb@gazeta.pl (=?ISO-8859-2?q?Piotr_Dembi=F1ski?=) napisał(a): > Popraw mnie, jeśli się mylę, ale Haskell jest silnie typowany, więc > w wielu przypadkach zamiast asercji bardziej naturalne byłoby > stosowanie odpowiednich typów. Haskell może i ma fajny system typów, ale i tak większość istotnych założeń, które miewa się na myśli podczas tworzenia oprogramowania nie bardzo dają się w nim wyrazić... -MS -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads