= Limbaje =
Acestea sunt limbajele utilizate în cadrul cursului de Paradigme de Programare:
== Racket ==
* Pentru Racket vom folosi [[https://download.racket-lang.org/racket-v7.6.html|versiunea 7.6]] (sau ulterior, dar pe vmchecker avem această versiune)
* pentru Linux, recomandăm instalarea folosind fișierul ''.sh'' descărcat de pe pagina de mai sus. Executați fișierul descărcat în linia de comandă
* Racket vine cu Editor / mediu de execuție integrat, numit DrRacket, deci nu este necesară utilizarea altui editor.
== Haskell ==
* pentru Haskell vom folosi [[https://github.com/commercialhaskell/stack/releases/tag/v1.9.3|Haskell Stack 1.9.3]]
* **instalare**
* Windows:
* rulați [[https://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-windows-x86_64-installer.exe|installer-ul]]
* instalați în calea implicită (''%APPDATA%\local\bin'')
* eventual, verificați că această cale a fost adăugată la PATH și este de asemenea și valoare a variabilei de mediu ''STACK_ROOT''
* Linux:
* descărcați [[https://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64.tar.gz|arhiva]]
* dezarhivați oriunde și creați un link simbolic spre fișierul ''stack'' în ''/usr/local/bin'':
ln -s /usr/local/bin/stack
* **configurare:** dorim să folosim GHC 7.8 (instrucțiuni comune pentru Windows și Linux)
* deschideți o consolă
* rulați, și **imediat după apariția output-ului (partea cu ''Downloading...'') opriți cu ''Ctrl-C''**: ''stack setup''
* editați fișierul ''stack.yaml'' (calea acestuia a fost scrisă la output de comanda anterioară)
* în Linux, calea ar trebui să fie ''~/.stack/global-project/stack.yaml''
* în Windows, calea ar trebui să fie ''%APPDATA%\local\bin\global-project\stack.yaml'' sau ''C:\sr\global-project\stack.yaml'' sau similar
* editați intrarea ''resolver'' pentru a avea: ''resolver: lts-2.22''
* editați sau adăugați intrarea ''extra-deps'' pentru a avea: ''extra-deps: [random-1.1]''
* salvați, închideți, și rulați din nou ''stack setup'' ; așteptați terminarea instalării
* dacă primiți o eroare de permisiuni (chiar dacă a scris "Everything is ok") --> reîncercați cu drepturi de administrator; atenție să se folosească fișierul yaml corect.
* dacă primiți o eroare legată de ''Cannot find -l'' trebuie să instalați acea bibliotecă pe sistemul vostru
* dacă primiți o eroare legată de ''realgcc'' (probabil pe windows) --> urmăriți pașii (vedeți și [[https://github.com/commercialhaskell/stack/issues/3213#issue-235243426|aici]]):
* mergeți în directorul ''%APPDATA%\Local\Programs\stack\x86_64-windows\ghc-7.8.4\mingw\bin\'' (sau similar, în funcție de instalarea voastră)
* faceți o copie a fișierului ''x86_64-w64-mingw32-gcc.exe'' și redenumiți-o la ''realgcc.exe''.
* rulați din nou ''stack setup'' și continuați cu urmărirea instrucțiunilor.
* rulați ''stack install random''
* pentru verificare:
* descărcați fișierul ''{{ check-haskell-stack-install.hs |check-haskell-stack-install.hs}}''
* porniți o linie de comandă în același directorul cu fișierul descărcat
* executați ''stack exec ghci check-haskell-stack-install.hs''
* așteptați prompterul ''*Main>'', apoi dați comanda ''check''
* ar trebui să apară mesajul ''Install OK''.
* deschideți fișiere haskell (e.g. ''lab.hs'') cu ''stack exec ghci lab.hs''.
* utilizare [[http://www.notepad-plus-plus.org/|Notepad++]] ca editor:
* se selectează Language -> Haskell.
== Prolog ==
* Folosim [[http://www.swi-prolog.org/download/stable?show=all|SWI-Prolog]], versiunea 7.4.0 (sau ulterior, dar pe vmchecker avem această versiune)
* pentru Ubuntu Linux, recomandăm pașii de instalare direct din PPA (vezi [[http://www.swi-prolog.org/build/PPA.html|aici]])
* suport **diacritice** în surse:
* dacă diacriticele nu sunt suportate automat, trebuie editat fișierul de preferințe.
* în Windows, acesta se găsește în directorul AppData/Roaming (e.g. ''C:\Users\Name\AppData\Roaming\SWI-Prolog''), cu numele swipl.ini
* în Linux, acesta se găsește în ''~/.swiplrc''
* în fișierul de preferințe, se adaugă (la sfârșit) linia:
:-set_prolog_flag(encoding,utf8).
* **utilizare editor pce-emacs** (vine cu instalarea de SWI-Prolog):
* pentru **activarea** editorului pce-emacs:
* în Windows, în Prolog dați Settings -> User Init File și optați pentru crearea unei configurații implicite.
* în Windows și Linux, în fișierul de configurare (vezi mai sus), adăugați opțiunea:
:- set_prolog_flag(editor, pce_emacs).
* pentru **keyboard shortcuts**, dacă nu merge ''Ctrl-V'' pentru Paste:
* Edit -> Editor Preferences -> se decomentează linia ''key_binding.style: cua'' (prin eliminarea semnului de exclamare de la începutul liniei), se dă Save și se repornește prologul.
* după ce s-a încărcat un fișier în consolă (fie deschizând cu ''prolog fisier.pl'', fie prin comanda ''load_files('fisier.pl').'', se folosește comanda ''edit.'' sau, dacă sunt mai multe fișiere încărcate, ''edit('fisier.pl').''
* din editorul deschis, se poate cere încărcarea modificărilor în consola Prolog prin comanda ''Compile Buffer'' (din meniul ''Compile''), cu scurtătura Ctrl-c Ctrl-b (după salvare. Practic, trebuie apăsat Ctrl-s Ctrl-c Ctrl-b pe Windows, și Ctrl-x Ctrl-s Ctrl-c Ctrl-b)
* încărcare modificări:
* din consola Prolog, se poate cere încărcarea modificărilor prin comanda
?- make.
* alte editoare:
* GEdit și Mousepad (posibil și alte editoare din Linux) au deja highlighting pentru Prolog.
* utilizare Notepad++:
* trebuie adăugate definițiile pentru syntax highlighting. Vezi, [[http://docs.notepad-plus-plus.org/index.php/User_Defined_Language_Files|aici]]