Article View: pl.comp.lang.funkcyjne
Article #835Re: Kawałek funkcyjny w programie obiektowym (Jess?)
From: Tomasz Zielonka
Date: Sun, 16 Jul 2006 07:16
Date: Sun, 16 Jul 2006 07:16
48 lines
3140 bytes
3140 bytes
paweł 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ę?
> (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ć.
Zupełnie to niepodobne do Scheme, ale może Cię zainteresuje:
http://scala.epfl.ch/
Scala is a modern multi-paradigm programming language designed to
express common programming patterns in a concise, elegant, and
type-safe way. It smoothly integrates features of object-oriented
and functional languages.
Scala interoperates with Java and .NET
Scala is designed to interoperate well with popular programming
environments like the Java 2 Runtime Environment (JRE) and the .NET
Framework (CLR). In particular, the interaction with mainstream
object-oriented languages like Java and C# is as smooth as possible.
Scala has the same compilation model (separate compilation, dynamic
class loading) like Java and C# and allows access to thousands of
high-quality libraries.
Scala is functional
Scala is also a functional language in the sense that every function
is a value. Scala provides a lightweight syntax for defining
anonymous functions, it supports higher-order functions, it allows
functions to be nested, and supports currying. Scala's case classes
and its built-in support for pattern matching model algebraic types
used in many functional programming languages.
Pozdrawiam
Tomek
Technical Details
Message-ID:
<slrnebjpba.6jp.tomasz.zielonka@tomekz.gem.lan>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mailReferences:
<e9c3mo$ld2$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.atman.pl!not-for-mail From: Tomasz Zielonka <tomasz.zielonka@gmail.com> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: Kawałek funkcyjny w programie obiektowym (Jess?) Date: Sun, 16 Jul 2006 07:16:09 +0000 (UTC) Organization: ATMAN Lines: 48 Message-ID: <slrnebjpba.6jp.tomasz.zielonka@tomekz.gem.lan> References: <e9c3mo$ld2$1@inews.gazeta.pl> Reply-To: tomasz.zielonka@gmail.com NNTP-Posting-Host: host70-grc.spray.net.pl Mime-Version: 1.0 X-Trace: node4.news.atman.pl 1153034169 3710 83.143.44.70 (16 Jul 2006 07:16:09 GMT) X-Complaints-To: abuse@atman.pl NNTP-Posting-Date: Sun, 16 Jul 2006 07:16:09 +0000 (UTC) User-Agent: slrn/0.9.8.1pl1 (Debian) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit