lecture 05

This commit is contained in:
SowinskiBraeden committed 2026-10-14 16:26:51 -07:00
1 parent cda6101a3d
commit 6c54e7a49b
7 files changed
+175

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
defmodule M do
def if_fun(predicate, do: do_block, else: else_block) do
cond do
predicate -> do_block
true -> else_block
end
end
defmacro inspect(x) do
IO.inspect(x)
end
defmacro if_macro(predicate, do: do_block, else: else_block) do
quote do
cond do
unquote(predicate) -> unquote(do_block)
true -> unquote(else_block)
end
end
end
defmacro while(condition, do: do_block) do
quote do
try do
for _ <- Stream.cycle [:ok] do
if unquote(condition), do: unquote(do_block),
else: throw :break
end
catch :throw, :break -> :ok end
end
end
end