[Haskell] Basic rules!
От: geniepro http://geniepro.livejournal.com/
Дата: 13.02.09 04:19
Оценка: 14 (3) :)))
Тут утверждают время от времени, что мол якобы на Хаскелле ирудно писать императивно.
Ну, с помощью новейшей библиотеки для компилятора GHC можно прямо в код на Хаскелле вставлять вставки на бейсике!

Language.BASIC: A simplified version of the original BASIC embedded in Haskell.

Спасибо господину Леннарту Аугустссону за то, что он очень сильно облегчил работу императивным программистам на Хаскелле!

Пример кода:
{-# OPTIONS_GHC -fno-warn-type-defaults #-}
{-# LANGUAGE ExtendedDefaultRules, OverloadedStrings #-}
module HiLo where
import Language.BASIC

main :: IO ()
main = runBASIC $ do
    10 GOSUB 1000
    20 PRINT "* Welcome to HiLo *"
    30 GOSUB 1000

    100 LET I := INT(100 * RND(X))
--    110 PRINT I
    200 PRINT "Guess my number:"
    210 INPUT X
    220 LET S := SGN(I-X)
    230 IF S <> 0 THEN 300

    240 FOR X := 1 TO 5
    250  PRINT X*X;" You won!"
    260 NEXT X
    270 STOP

    300 IF S <> 1 THEN 400
    310 PRINT "Your guess ";X;" is too low."
    320 GOTO 200

    400 PRINT "Your guess ";X;" is too high."
    410 GOTO 200

    1000 PRINT "*******************"
    1010 RETURN

    9999 END


PS. Кстати, производительность этого бейсика примерно на уровне Си (GCC) получилась...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.