{"categories":["Haskell","C"],"author_url":"https://blog.hatena.ne.jp/sirocco/","provider_name":"Hatena Blog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fsirocco.hatenadiary.org%2Fentry%2F20100603%2F1275548880\" title=\"FFI \u3092\u5b66\u3076(1) :\u521d\u3081\u3066\u306e Foreign Function Interface (FFI)  - sirocco \u306e\u66f8\u3044\u3066\u3082\u3059\u3050\u306b\u5fd8\u308c\u308b\u30e1\u30e2\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","published":"2010-06-03 16:08:00","description":"Haskell \u304b\u3089\u306f C \u306e\u95a2\u6570\u304c\u547c\u3079\u307e\u3059\u3002 {-# OPTIONS -fglasgow-exts #-} import Foreign import Foreign.C.String import Foreign.C.Types import System.IO.Unsafe (unsafePerformIO) foreign import ccall \"math.h sin\" c_sin :: Double -> Double foreign import ccall \"string.h strlen\" c_strlen :: CString -> CUInt -- \u540c\u3058 printf \u2026","width":"100%","provider_url":"https://hatena.blog","image_url":null,"blog_title":"sirocco \u306e\u66f8\u3044\u3066\u3082\u3059\u3050\u306b\u5fd8\u308c\u308b\u30e1\u30e2","type":"rich","height":"190","url":"https://sirocco.hatenadiary.org/entry/20100603/1275548880","version":"1.0","title":"FFI \u3092\u5b66\u3076(1) :\u521d\u3081\u3066\u306e Foreign Function Interface (FFI) ","blog_url":"https://sirocco.hatenadiary.org/","author_name":"sirocco"}