Trong phần trước chúng ta đã cài đặt GHCI và sử dụng trong Command Prompt. Trong phần này chúng ta sẽ dùng Visual Studio Code làm IDE để có thể viết và quản lý code dễ dàng hơn.
VS Code
Đầu tiên chúng ta tải và cài đặt VS Code tại địa chỉ https://code.visualstudio.com/.
Cài Extension trên VS Code
Chúng ta cài các extension sau đây:
- Haskell Syntax Highlighting: hiển thị màu chữ các keyword, comment, biến…v.v
- haskell-linter: kiểm tra cú pháp và đề xuất cách viết clean code
Chúng ta chỉ cần 2 extension đó là đủ rồi, không cần quá nhiều.
Cài hlint
Ở thời điểm hiện tại, haskell-linter chỉ là một wrapper của phần mềm hlint, nghĩa là extension này thực chất sẽ sử dụng hlint để thực hiện các công việc của một phần mềm linter. Vì vậy sau khi cài, extension này sẽ báo lỗi không tìm thấy hlint.
Nên chúng ta phải cài hlint trước, chúng ta có thể cài thông qua Cabal – đây là bộ công cụ giúp quản lý các gói phần mềm dành cho Haskell, đi kèm khi chúng ta cài Haskell Platform.
Đầu tiên chúng ta chạy lệnh cabal
update
:
C:>cabal update Downloading the latest package list from package.haskell.org
Tiếp theo chúng ta cài hlint
bằng lệnh cabal install hlint
:
C:>cabal install hlint Resolving dependencies... ...
Cabal sẽ tải và cài đặt hlint, việc này có thể tốn tầm 5-10 phút.
Sau khi đã cài xong, chúng ta có thể kiểm tra bằng cách chạy lệnh hlint -V
để xem phiên bản hlint hiện tại:
C:>hlint -V HLint v3.1.1, Copyright Neil Mitchell 2006-2020
Tạo project
Chúng ta tạo một thư mục nào đó, rồi mở thư mục đó trong VS Code, sau đó tạo một file, đặt tên chẳng hạn như main.hs, *.hs
là đuôi của file Haskell. Viết đoạn code sau vào file này:
main :: IO() main = putStrLn "Hello World"
Để chạy thì chúng ta mở Terminal trong VS Code lên, biên dịch bằng lệnh ghc main.hs
:
Trình ghc sẽ biên dịch và link file main.hs
và tạo ra file main.exe. Để chạy thì chúng ta chỉ việc gọi file này:
Ngoài ra chúng ta cũng có thể dùng lệnh runhaskell
main.hs,
lệnh này sẽ sẽ làm công việc thông dịch, nghĩa là không biên dịch ra file .exe mà chỉ chạy từng lệnh như các ngôn ngữ Python, Perl, Ruby…v.v
Lưu ý
Khi chúng ta viết một đoạn code Haskell thì trình biên dịch sẽ luôn luôn tìm một biến có tên là main
và có kiểu là IO().
Ngoài ra quy tắc của Haskell là khi đã khai báo một biến thì phải gán dữ liệu cho biến đó. Ở đây dòng main :: IO()
là dòng khai báo kiểu, còn dòng main = putStrLn "Hello World"
tiếp theo là dòng gán, nếu không có dòng đầu và dòng thứ 2 thì trình biên dịch sẽ luôn luôn báo lỗi.
Ở đây để ví dụ nên chúng ta viết dòng in ra màn hình. Trên thực tế chúng ta có thể viết như sau:
main :: IO() main = return() --- Không làm gì cả