Weitere ähnliche Inhalte
Ähnlich wie C83 λカ娘の販促にやってきました (20)
Kürzlich hochgeladen (12)
C83 λカ娘の販促にやってきました
- 6. 今の体型 Haskellサイド
-- File: Fib.hs
module Fib where
import Foreign.C.Types
foreign export ccall fib :: CInt -> IO CInt
fibonacci :: [CInt]
fibonacci = 1:1:zipWith (+) fibonacci (tail fibonacci)
fib :: CInt -> IO CInt
fib n | 0 <= n && n <= 40 = return $ fibonacci !! fromIntegral n
| otherwise = return 0
- 7. 今の体型 C言語サイド
/* File: CMain.c */
#include <stdio.h>
#include "HsFFI.h"
#ifdef __GLASGOW_HASKELL__
#include "Fib_stub.h"
#endif
int main(int argc, char *argv[])
{
int i;
hs_init(&argc, &argv);
for (i = 0; i < 30; i++) {
printf("%dn", fib(i));
}
hs_exit();
return 0;
}
- 9. ダイエット指標2
実行バイナリがリンクしているライブラリ数をダ
イエット
$ ldd FibHs
linux-vdso.so.1 => (0x00007fffaefff000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10
(0x00007f625b0ee000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f625ae6c000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
(0x00007f625ac63000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
(0x00007f625aa5f000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
(0x00007f625a849000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f625a4be000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x00007f625a2a2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f625b394000)
$ ldd FibHs | wc -l
9