Was für eine einfache Textverarbeitung in Haskell?

8

Ich versuche, eine einfache Textverarbeitung in Haskell zu machen, und ich frage mich, was ist der beste Weg, dies in einer FP-Sprache zu tun? Ich schaute auf das Parsec-Modul, aber das scheint viel ausgeklügelter zu sein, als ich als neuen Haskeller suche. Was wäre der beste Weg, alle Interpunktionen aus einem Textkorpus zu entfernen? Meine naive Herangehensweise war, eine Funktion wie diese zu machen:

%Vor%     
turtle 11.07.2012, 01:06
quelle

3 Antworten

8

Sie können Ihren Code einfach schreiben:

%Vor%

oder

%Vor%     
Ronson 11.07.2012, 01:30
quelle
11

Eine möglicherweise effizientere Methode (O (log n) statt O (n)) ist die Verwendung eines Set (aus Data.Set ):

%Vor%

Sie müssen die Menge außerhalb der Funktion konstruieren, so dass sie nur einmal berechnet wird (indem sie über alle Aufrufe verteilt wird), da der Aufwand für das Erstellen der Menge viel größer ist als der einfache notElem -Test, den andere haben vorgeschlagen.

Hinweis: Dies ist eine so kleine Situation, dass der zusätzliche Overhead von Set die asymptotischen Vorteile der Menge gegenüber der Liste überwiegt. Wenn also nach absoluter Leistung gesucht wird, muss sein profiliert.

    
huon 11.07.2012 02:36
quelle
4

Sie können Ihre Zeichen in einem String gruppieren und notElem verwenden:

%Vor%

oder in einem funktionelleren Stil:

%Vor%     
Daniel Velkov 11.07.2012 01:16
quelle

Tags und Links