{"height":"190","version":"1.0","published":"2009-07-21 21:34:58","provider_url":"https://hatena.blog","blog_title":"\u30a8\u30f3\u30b8\u30cb\u30a2\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u7684\u611b\u60c5","image_url":null,"title":"Haskell\u3067OpenGL(\u518d\u653e\u9001)","categories":["Haskell","OpenGL"],"description":"\u3069\u3046\u66f8\u304f?org\u306b\u6295\u7a3f\u3057\u305f\u3082\u306e\u306b\u3061\u3087\u3063\u3068\u624b\u3092\u52a0\u3048\u305f\u3082\u306e\u3092\u3001\u5099\u5fd8\u9332\u4ee3\u308f\u308a\u306b\u3053\u3061\u3089\u306b\u3082\u6295\u7a3f\u3002 \u300cevent handlers\u300d\u4ee5\u4e0b\u304c\u3001OpenGL/GLUT\u3092\u4f7f\u3063\u3066\u6642\u9593\u7d4c\u904e\u3068\u3068\u3082\u306b\u72b6\u6cc1(\u8868\u793a)\u304c\u5909\u308f\u308b\u3082\u306e\u3092\u8868\u793a\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u304f\u3068\u304d\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u306a\u308b\u3068\u601d\u3044\u307e\u3059\u3002draw\u95a2\u6570\u306b\u63cf\u753b\u306e\u30b3\u30fc\u30c9\u3092\u3001update\u306b\u72b6\u6cc1\u3092\u66f4\u65b0\u3059\u308b\u30b3\u30fc\u30c9\u3092\u66f8\u3051\u3070OK\u3002 import Graphics.UI.GLUT import Control.Exception import System.Exit import Data.IORef interval = 0 windowWidth = 320::GLsizei win\u2026","blog_url":"https://blog.emattsan.org/","provider_name":"Hatena Blog","width":"100%","author_name":"E_Mattsan","type":"rich","author_url":"https://blog.hatena.ne.jp/E_Mattsan/","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fblog.emattsan.org%2Fentry%2F20090721%2F1248179698\" title=\"Haskell\u3067OpenGL(\u518d\u653e\u9001) - \u30a8\u30f3\u30b8\u30cb\u30a2\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u7684\u611b\u60c5\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","url":"https://blog.emattsan.org/entry/20090721/1248179698"}