Funktionale Programmierung: XML Arrows
XML Arrows
Zustandsbehaftete XML Arrows und IO
List Arrows
reichen für die Verarbeitung, insbesondere Ein- Ausgabe nich aus.
Erweiterung
verallgemeinerte List-Arrows mit Zustand und IO
in HXT
newtype
LA
a
b
=
LA
{
runLA
::
(
a
->
[
b
]
)
}
newtype
SLA
s
a
b
=
SLA
{
runSLA
::
(
s
->
a
->
(
s
,
[
b
]
)
)
}
newtype
IOLA
a
b
=
IOLA
{
runIOLA
::
(
a
->
IO
[
b
]
)
}
newtype
IOSLA
s
a
b
=
IOSLA
{
runIOSLA
::
(
s
->
a
->
IO
(
s
,
[
b
]
)
)
}
Analogie
zu Monaden
Listen-Monade
Zustands-Monade
IO-Monade
IOSLA
entspricht einer Kombination von Listen-, Zustands- und IO-Monade
Konsequenz
Die Kombinatoren für die Baum- und XML-Verarbeitung müssen in Klassen zusammengefasst werden.
Die oben definierten Typen müssen zu Instanzen dieser Klassen gemacht werden.
IOSLA
wird neben
LA
der am häufigsten verwendete Arrow sein
Zeit für konkrete Beispiele
Letzte Änderung: 27.03.2015
©
Prof. Dr. Uwe Schmidt