fork download
  1. import Control.Applicative
  2. import Control.Monad
  3. import Foreign
  4. import Prelude hiding ((*), (+))
  5.  
  6. (=&) = poke
  7. infixr 1 *=
  8. (*=) a b = poke a =<< b
  9. (+) c i = foldr (.) id (replicate i succ) <$> c
  10. (*) = peek
  11. printf = snd >=> putStrLn . (:[])
  12. (=.) _ _ = return ()
  13. char _ = 0
  14. infixr 0 //
  15. (//) f _ = f >> return ()
  16. () _ _ = return ()
  17. (%) f = malloc >>= (>>) <$> f 'A' <*> free
  18. main = int_main ()
  19.  
  20. ------------------------------------------------------
  21. {-#include<stdio.h>-}
  22.  
  23. int_main () = (%) $ \c p -> do
  24. {
  25. char c =. 'A';
  26. char* p // "ポインタ変数の宣言";
  27. p =& c // "変数(c) の番地を設定";
  28. printf("%c\n", (*)p) // "ポインタ変数から文字表示";
  29. p *= (*)p + 2 // "ポインタ変数から値を変更";
  30. printf("%c\n", (*)p) // "ポインタ変数から文字表示";
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 6216KB
stdin
Standard input is empty
stdout
A
C