Problem z załadowaniem biblioteki

0

Chciałem wykonać następującą funkcję

map Char.toUpper "Hello World"

która oczywiście powinna zwrócić napis: "HELLO WORLD"

Otrzymuję jednak błąd:

<interactive>:8:5:
    Failed to load interface for `Char'
    It is a member of the hidden package `haskell98-2.0.0.1'.
    Use -v to see a list of the files searched for.

Czyli jak dobrze zrozumiałem nie załadował mi poprawnie interfejsu Char.

W miejscu gdzie mam zainstalowanego haskella znajduje się oczywiście folder z bibliotekami, jest tam też ten o nazwie haskell98-2.0.0.1 wraz z plikiem char.hs oraz char.p_hi

Co jest zatem nie tak?

Próbowałem też w ten sposób:

imoprt Data.Char ale nie pomogło.

Jak początkujący użytkownik haskella będę bardzo wdzięczny za wyrozumiałość i pomoc.

Próbowałem też załadować plik char.hs bezpośrednio z WinGHCi, otrzymując błąd:

Prelude> :cd C:\Haskell\2012.4.0.0\lib\haskell98-2.0.0.1
Prelude> :load "Char.hs"

Char.hs:1:2: lexical error at character 'i'

Top level:
    attempting to use module `Prelude' (.\Prelude.hs) which is not loaded
Failed, modules loaded: none.

może ktoś wie co jest nie tak?

0

Tzn. masz coś takiego:

import Data.Char

main :: IO ()
main = print $ map toUpper "Hello World"

Wczytujesz:
Prelude> :load foo

I to nie działa: ?

*Main> main  
"HELLO WORLD"
0

Ok działa. Przy czym robię to w ten sposób, że plik ładuję poprzez Load z poziomu edytora, ale wychodzi zapewne na to samo.
Mój błąd polegał na tym, że używałem Char.toUpper zamiast samego toUpper. Chociaż w książce z której się uczę wyczytałem, że tylko użytkownicy HUGsa powinni używać samego toUpper.

Możesz przy okazji polecić jeszcze jakiś edytor do pisania programów w haskellu? Obecnie robię to w ten sposób, że piszę w Notepad++ i następnie ładuję plik w WinGHCi.

0

Faktycznie, szukanie edytora do haskella może nie być proste.

Z opcji których nie polubisz:
No więc ja obecnie używam vim + ghci/winGhci (zależnie od nastroju/pory dnia), ale pewnie Cię to nie satysfakcjonuje ;)
Sporo osób używa haskell-mode dla emacsa - całkiem niezłe, ale to też nie dla Ciebie raczej.

Z opcji co do których jest większa szansa że Ci się spodobają:
Przede wszystkim Leksah (http://www.leksah.org/) - całkiem rozbudowane IDE, napisane w haskellu - z wad, to dość ciężki (cięższy niż vim/notepad++ na pewno) i ostatnio kiedy go używałem, wczytywanie z stdin nieszczególnie działało (znany błąd) - może już poprawione, kto wie.
Osobiście, całkiem trochę używałem heat (http://www.cs.kent.ac.uk/projects/heat/) - może nie pełnoprawne IDE, ale edytor + interpreter w jednej aplikacji (+ kilka bonusów np. możliwość uruchamiania unit testów wbudowana).

Z opcji innych:
Kiedyś był visualhaskell, ale projekt umarł już dawno (chociaż ponoć ktoś prowadzi prace nad nową wersją)
Odkryłem właśnie że Yi (http://www.haskell.org/haskellwiki/Yi) dorobił się wsparcia na windowsie, aż sprawdzę kiedyś jak to działa obecnie.

0

Dzięki. Na razie będę korzystał z heat'a, jest całkiem ok.

Zdziwiło mnie jednak to, że w haskellu muszę zrobić odpowiednie wcięcia aby poprawnie skompilował program. W edytorze heat tabulacja w ogóle mi nie działa a robienie wcięć spacjami jest dość męczące. Nie wiesz może czy da się używać jakoś tabulacji w tym heat?

1 użytkowników online, w tym zalogowanych: 0, gości: 1