www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

vorherige Seite 1 2  

domjoe

Gepostet:
09.03.2011 10:07

   
Bei welchen Zeichen kommt bei Dir eigentlich "Bockmist" raus? Bei mir funktioniert deine Funktion! Fragezeichen, Unterstrich, Prozentzeichen, Ausrufezeichen, alles wird richtig angezeigt!
Zum Seitenanfang    
 
Viviane

Gepostet:
09.03.2011 11:52

   
Gib als eingabe mal "String" ein, dann weiß er nicht was er mit dem S am Anfang anstellen soll, denn das ist ja schon groß.

Grüße

Viviane
Zum Seitenanfang ICQ    
 
domjoe

Gepostet:
09.03.2011 17:21

   
Bei mir gibt er das komplette Wort in Großbuchstaben aus! Bei allen drei Varianten die wir jetzt haben! Im Grunde sind sie ja auch alle gleich! Ich benutze übrigens die Haskell Plattform 2010.2.0.0
Zum Seitenanfang    
 
domjoe

Gepostet:
09.03.2011 17:31

   
Probier mal den:

capitalize''' :: [Char] -> [Char]
capitalize''' xs = [if isAlpha a && isLower a then toUpper a else a | a <- xs]
Zum Seitenanfang    
 
Viviane

Gepostet:
09.03.2011 18:45

   
Warte mal......hm an sich müsst ich jetzt meckern wart mal dann geh ich selbst nochmal drüber.....ich kann da ne if-then-else -Abfrage vorne reinbauen?

Das wollte ich doch die ganze Zeit wissen, ich wusste nich wo ich die Fallunterscheidungen machen soll, danke!
Zum Seitenanfang ICQ    
 
Viviane

Gepostet:
14.03.2011 19:28

   
So.

Bin endlich mal dazu gekommen

isAlpha und isLower kennt mein ghci nicht, hast Du die Dir selbst geschrieben?

Habe es dann wie folgt probiert:

capitalize''' :: [Char] -> [Char]
capitalize''' xs = [if fromEnum 'a'>=97 && fromEnum 'a' <= 122 then toUpper a else a | a <- xs]

Das funktioniert auch insoweit als das Programm läuft allerdings liefert capitalize''' "String" als Ausgabe "3TRING", offenbar kann kann er also mit dem Großbuchstaben nicht umgehen bzw. interpretiert die else-Anweisung falsch.

Woran kann das liegen?

Grüße

Viviane

edit: Gefunden was isAlpha usw. machen, verstehe nur jetzt nicht warum mein Interpreter das mit "not in scope" kommentiert der müsste das doch kennen?
Zum Seitenanfang ICQ    
 
domjoe

Gepostet:
15.03.2011 09:11

   
Um diese Methoden nutzen zu können, musst du das Modul Char importieren. Das machst du, indem du am Anfang deiner Datei in der ersten Zeile

import Char

schreibst!

In deiner Methode würde ich auch die einfachen Anführungszeichen weglassen, du fragst nämlich meiner Meinung nach ob der Kleinbuchstabe a innerhalb des Ascii-Intervals liegt und nicht nach dem, was in der Variable a drin ist! Deine Abfrage ist somit immer wahr!

Grüße

domjoe
Zum Seitenanfang    
 
Viviane

Gepostet:
15.03.2011 14:32

   
Und woher kommt bei Deiner Methode

capitalize''' :: [Char] -> [Char]
capitalize''' xs = [if isAlpha a && isLower a then toUpper a else a | a <- xs]


auf einmal das a? Wenn Du doch mit xs anfängst?
Zum Seitenanfang ICQ    
 
domjoe

Gepostet:
04.04.2011 09:02

   
Schau Dir hierzu mal folgende Seite an:

http://learnyouahaskell.com/starting-out#im-a-list-comprehension

Das \'a\' ist ja nur jeweils ein Element aus xs, welches Du gesondert behandeln kannst!
Zum Seitenanfang    
 
Landei

Gepostet:
04.04.2011 16:27

   
Leute, bei mir funktioniert ein schlichtes


import Data.Char
capitalize\' = map toUpper


ohne Probleme, z.B.


main = print $ capitalize\' \"Hfdkfjd13&/%12jfDf\"

--> \"HFDKFJD13&/%12JFDF\"


Zum Seitenanfang    
 

vorherige Seite 1 2