Pull to refresh
7
1.5
Send message

Всю жизнь. В школе с углубленным изучением отучился (родители тогда на поклон к кому то ходили, чтобы меня в блатную школу взяли). Потом в институте учил. А потом сам заставлял себя книги читать, фильмы смотреть, ролики с ютуба.
И результат всех моих жизне-часов примерно 7-8 тысяч слов запаса и весьма посредственное знание грамматики.
Так себе результат. Руки опускаются.

А что за курс проходили, и как долго? Довольно впечатляющий уровень для человека, который просто прошел курс.

Ещё не освоил здешний интерфейс. Переформатировал код свего комментария

import System.IO

whenKeyIsPressed :: Handle -> IO a -> IO (Maybe a)
whenKeyIsPressed handle getCh = hReady handle >>= go
   where go True = getCh >>= return . Just
         go _    = return Nothing

main :: IO ()
main = do
  hSetBuffering stdin NoBuffering
  ch <- whenKeyIsPressed stdin getChar
  case ch of
    Just c -> putStrLn $ "Key pressed: " ++ [c]
    Nothing -> return () -- putStrLn "Nothing is pressed"
  main<b></b>
Можно и без параллеьных потоков, используя функцию hReady

import System.IO

whenKeyIsPressed :: Handle -> IO a -> IO (Maybe a)
whenKeyIsPressed handle getCh = hReady handle >>= go
where go True = getCh >>= return. Just
go _ = return Nothing

main :: IO ()
main = do
hSetBuffering stdin NoBuffering
ch < — whenKeyIsPressed stdin getChar
case ch of
Just c -> putStrLn $ «Key pressed: » ++ [c]
Nothing -> return () — putStrLn «Nothing is pressed»
main

Графический интерфейс хорош, когда надо сделать делать какое то действие пару раз и забыть об этом. То, что приходится делать регулярно и по многу раз удобнее делать без ГУИ, консольными командами. Но подавляющее большинство Windows пользователей об этом не знают и продолжают тыкать мышкой одни и те же последовательности нажатий кнопок в ГУИ изо дня в день, долгими годами и даже десятилетиями.
12 ...
114

Information

Rating
1,229-th
Registered
Activity