-module(niftest). -on_load(init/0). -export([ init/0, hello/0, factorial/1 ]). -nifs([ hello/0, factorial1/1 ]). init() -> erlang:load_nif("./niftest", 0). hello() -> erlang:nif_error("NIF library not loaded"). factorial(N) when is_integer(N), N >= 0 -> case factorial1(N) of Bin when is_binary(Bin) -> binary:decode_unsigned(Bin); Error -> Error end; factorial(_) -> {error, badarg}. factorial1(_) -> "NIF not loaded".