SlideShare a Scribd company logo
Clojurian ElixirClojurian Elixir
lagénorhynquelagénorhynque
(defprofile lagénorhynque
:id @lagenorhynque
:reading "/laʒenɔʁɛ̃k/"
:aliases [" "]
:languages [Clojure Haskell English français]
:interests [programming language-learning law mathematics]
:commits ["github.com/lagenorhynque/duct.module.pedestal"]
:contributes ["github.com/japan-clojurians/clojure-site-ja"])
6 Lisp6 Lisp (*> ᴗ •*)(*> ᴗ •*)
Clojure : REST API
cf. BOOTH https://booth.pm/ja/items/1317263
1. Clojure Elixir
2. Elixir
3. Clojure
4. Clojure
Clojure ElixirClojure Elixir
ClojureClojure
:
: 2007
:
:
Java VM (JVM)
Lisp /
Rich Hickey
1.10.0
ElixirElixir
:
: 2011
:
:
Erlang VM (EVM; BEAM)
Ruby
Clojure
José Valim
1.8.2
e.g. 20e.g. 20
ClojureClojure
;; REPL (read-eval-print loop)
user> (->> (iterate (fn [[a b]] [b (+ a b)]) [0 1])
(map first)
(take 20))
(0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181)
ElixirElixir
# IEx (Interactive Elixir)
iex(1)> Stream.iterate({0, 1}, fn {a, b} -> {b, a+b} end) |>
...(1)> Stream.map(&elem(&1, 0)) |>
...(1)> Enum.take(20)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610,
987, 1597, 2584, 4181]
#
iex(2)> Stream.unfold({0, 1}, fn {a, b} -> {a, {b, a+b}} end) |>
...(2)> Enum.take(20)
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610,
987, 1597, 2584, 4181]
ElixirElixir
à la Clojure?
Clojure 2Clojure 2
cf. :cf. : Programming Clojure, Third EditionProgramming Clojure, Third Edition
ElixirElixir
cf. :cf. : Programming Elixir ≥ 1.6Programming Elixir ≥ 1.6
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell
7 77 7
Lua, Factor, Elixir, Elm, Julia, MiniKanren, Idris
Seven More Languages in Seven WeeksSeven More Languages in Seven Weeks
Chapter 3, 4, 6: Clojure
Chapter 5: Elixir
Seven Concurrency Models in Seven WeeksSeven Concurrency Models in Seven Weeks
Mastering Clojure MacrosMastering Clojure Macros
Metaprogramming ElixirMetaprogramming Elixir
Elixir Erlang/OTPElixir Erlang/OTP
ElixirElixir
ElixirElixir
ElixirElixir
ElixirElixir Getting StartedGetting Started
Erlang/Elixir Syntax: A Crash CourseErlang/Elixir Syntax: A Crash Course
ClojureClojure
ClojurianからみたElixir
ClojurianからみたElixir
ClojureClojure
ElixirElixir
cf. (Clojure )
user> '(1 2 3) ; ※
(1 2 3)
user> [1 2 3] ;
[1 2 3]
user> {:a 1 :b 2 :c 3} ;
{:a 1, :b 2, :c 3}
iex(2)> [1, 2, 3] #
[1, 2, 3]
iex(3)> {1, 2, 3} #
{1, 2, 3}
iex(4)> %{a: 1, b: 2, c: 3} #
%{a: 1, b: 2, c: 3}
//
ClojureClojure
ElixirElixir
user> (ns example) ; `example`
nil
example> (defn square [x] ; `square`
(* x x))
#'example/square
example> (in-ns 'user) ; `user`
#namespace[user]
user>
iex(5)> defmodule Example do # `Example`
...(5)> def square(x) do # `square`
...(5)> x * x
...(5)> end
...(5)> end
{:module, Example,
<<70, 79, 82, 49, 0, 0, 4, 100, 66, 69, 65, 77, 65, 116, 85, 56,
0, 0, 0, 14, 14, 69, 108, 105, 120, 105, 114, 46, 69, 120, 97,
101, 8, 95, 95, 105, 110, 102, 111, 95, ...>>, {:square, 1}}
ClojureClojure
ElixirElixir
user> (example/square 3) ; `example` `square`
9
user> (map example/square (range 1 (inc 10)))
(1 4 9 16 25 36 49 64 81 100)
iex(6)> Example.square(3) # `Example` `square`
9
iex(7)> Enum.map(1..10, &Example.square/1)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
//
ClojureClojure
ElixirElixir
user> (map (fn [x] (* x x)) (range 1 (inc 10)))
(1 4 9 16 25 36 49 64 81 100)
user> (map #(* % %) (range 1 (inc 10)))
(1 4 9 16 25 36 49 64 81 100)
iex(8)> Enum.map(1..10, fn(x) -> x * x end)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
iex(8)> Enum.map(1..10, &(&1 * &1))
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
­>>­>> (threading macro) vs(threading macro) vs |>|> (pipe operator)(pipe operator)
ClojureClojure
ElixirElixir
cf.
user> (->> (range 1 (inc 10))
(map #(* % %))
(filter odd?)
(apply +))
165
iex(9)> require Integer
Integer
iex(10)> 1..10 |>
...(10)> Enum.map(&(&1 * &1)) |>
...(10)> Enum.filter(&Integer.is_odd/1) |>
...(10)> Enum.sum
165
ClojurianからみたElixir
ClojureClojure
ElixirElixir
user> (defprotocol Shape ; `Shape`
(area [x])) ; `area`
Shape
iex(1)> defprotocol Shape do # `Shape`
...(1)> def area(x) # `area`
...(1)> end
{:module, Shape, ..., {:__protocol__, 1}}
//
ClojureClojure
user> (defrecord Triangle [x h] ; `Triangle`
Shape ;
(area [{:keys [x h]}] (/ (* x h) 2)))
user.Triangle
user> (area (map->Triangle {:x 3 :h 2}))
3
user> (defrecord Rectangle [x y] ; `Rectangle`
Shape ;
(area [{:keys [x y]}] (* x y)))
user.Rectangle
user> (area (map->Rectangle {:x 2 :y 3}))
6
ElixirElixir
iex(2)> defmodule Triangle do # `Triangle`
...(2)> defstruct [:x, :h]
...(2)> end
{:module, Triangle, ..., %Triangle{h: nil, x: nil}}
iex(3)> defimpl Shape, for: Triangle do #
...(3)> def area(%Triangle{x: x, h: h}), do: x * h / 2
...(3)> end
{:module, Shape.Triangle, ..., {:__impl__, 1}}
iex(4)> Shape.area(%Triangle{x: 3, h: 2})
3.0
iex(5)> defmodule Rectangle do # `Rectangle`
...(5)> defstruct [:x, :y]
...(5)> end
{:module, Rectangle, ..., %Rectangle{x: nil, y: nil}}
iex(6)> defimpl Shape, for: Rectangle do #
...(6)> def area(%Rectangle{x: x, y: y}), do: x * y
...(6)> end
{:module, Shape.Rectangle, ..., {:__impl__, 1}}
iex(7)> Shape.area(%Rectangle{x: 2, y: 3})
6
ClojureClojure
ElixirElixir
user> (defrecord Circle [r]) ; `Circle`
user.Circle
user> (area (map->Circle {:r 3}))
Execution error (IllegalArgumentException) at user/eval5412$fn$G
(REPL:47).
No implementation of method: :area of protocol: #'user/Shape fou
nd for class: user.Circle
iex(8)> defmodule Circle do # `Circle`
...(8)> defstruct [:r]
...(8)> end
{:module, Circle, ..., %Circle{r: nil}}
iex(9)> Shape.area(%Circle{r: 3})
** (Protocol.UndefinedError) protocol Shape not implemented for
%Circle{r: 3}
iex:2: Shape.impl_for!/1
iex:3: Shape.area/1
ClojureClojure
ElixirElixir
user> (extend-protocol Shape ;
Circle
(area [{:keys [r]}] (* Math/PI r r)))
nil
user> (area (map->Circle {:r 3}))
28.274333882308138
iex(10)> defimpl Shape, for: Circle do #
...(10)> def area(%Circle{r: r}), do: :math.pi() * r * r
...(10)> end
{:module, Shape.Circle, ..., {:__impl__, 1}}
iex(11)> Shape.area(%Circle{r: 3})
28.274333882308138
ClojurianからみたElixir
ASTAST
ClojureClojure
user> '(when (= 1 1)
(println "Truthy!"))
(when (= 1 1) (println "Truthy!"))
;;
user> (quote
(when (= 1 1)
(println "Truthy!")))
(when (= 1 1) (println "Truthy!"))
ElixirElixir
iex(1)> quote do
...(1)> if 1 == 1 do
...(1)> IO.puts "Truthy!"
...(1)> end
...(1)> end
{:if, [context: Elixir, import: Kernel],
[
{:==, [context: Elixir, import: Kernel], [1, 1]},
[
do: {{:., [], [{:__aliases__, [alias: false], [:IO]}, :puts
]}, [],
["Truthy!"]}
]
]}
ClojureClojure
user> (ns example)
nil
example> (defmacro my-when-not [test & body]
`(if ~test
nil
(do ~@body)))
#'example/my-when-not
example> (in-ns 'user)
#namespace[user]
user>
ElixirElixir
iex(2)> defmodule Example do
...(2)> defmacro my_unless(test, do: body) do
...(2)> quote do
...(2)> if unquote(test), do: nil, else: unquote(body)
...(2)> end
...(2)> end
...(2)> end
{:module, Example, ..., {:my_unless, 2}}
ClojureClojure
user> (example/my-when-not (= 1 2)
(println "Falsy!")
42)
Falsy!
42
user> (example/my-when-not (= 1 1)
(println "Falsy!")
42)
nil
ElixirElixir
iex(3)> require Example
Example
iex(4)> Example.my_unless 1 == 2 do
...(4)> IO.puts "Falsy!"
...(4)> 42
...(4)> end
Falsy!
42
iex(5)> Example.my_unless 1 == 1 do
...(5)> IO.puts "Falsy!"
...(5)> 42
...(5)> end
nil
ClojureClojure
user> (macroexpand-1 ; 1
'(example/my-when-not (= 1 2)
(println "Falsy!")
42))
(if (= 1 2) nil (do (println "Falsy!") 42))
ElixirElixir
iex(6)> quote do
...(6)> Example.my_unless 1 == 2 do
...(6)> IO.puts "Falsy!"
...(6)> 42
...(6)> end
...(6)> end |> Macro.expand_once(__ENV__) |> # 1
...(6)> Macro.to_string |> IO.puts # AST
if(1 == 2) do
nil
else
IO.puts("Falsy!")
42
end
:ok
ClojureClojure
vs
cf. (by Rich Hickey)
REPL
cf. REPL (REPL-driven development)
Simple Made Easy
Elixirists Clojurians (?)Elixirists Clojurians (?)
Further ReadingFurther Reading
:
:
https://clojure.org
https://japan-
clojurians.github.io/clojure-site-ja/
https://elixir-lang.org
https://elixir-lang.jp
Getting Started
Erlang/Elixir Syntax: A Crash Course
:
:
Clojure 2
Programming Clojure, Third Edition
Elixir
Programming Elixir ≥ 1.6
7 7
Seven More Languages in Seven Weeks
Seven Concurrency Models in Seven Weeks
Scala/Akka (Chapter 5)
Mastering Clojure Macros
Metaprogramming Elixir
Elixir Erlang/OTP
Elixir
Elixir
Elixir
:
https://scrapbox.io/lagenorhynque/Elixir
lagenorhynque/programming-elixir

More Related Content

What's hot (20)

PDF
キメるClojure
Yoshitaka Kawashima
 
PDF
規格書で読むC++11のスレッド
Kohsuke Yuasa
 
PDF
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Kent Ohashi
 
PDF
CXL_説明_公開用.pdf
Yasunori Goto
 
PDF
Vim script と vimrc の正しい書き方@nagoya.vim #1
cohama
 
PDF
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Hiro H.
 
PPTX
Effective Modern C++ 勉強会 Item 22
Keisuke Fukuda
 
PDF
react-scriptsはwebpackで何をしているのか
暁 三宅
 
PDF
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
PPTX
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
 
PDF
Vimから見たemacs
Shougo
 
PDF
関数型プログラミング入門 with OCaml
Haruka Oikawa
 
ODP
どこに何を書くのか?
pospome
 
PDF
C++ マルチスレッドプログラミング
Kohsuke Yuasa
 
PDF
ゲーム開発者のための C++11/C++14
Ryo Suzuki
 
PPTX
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
Tokoroten Nakayama
 
PPTX
Linux Network Stack
Adrien Mahieux
 
PDF
組み込みでこそC++を使う10の理由
kikairoya
 
PDF
Gitの便利ワザ
ktateish
 
PDF
from Source to Binary: How GNU Toolchain Works
National Cheng Kung University
 
キメるClojure
Yoshitaka Kawashima
 
規格書で読むC++11のスレッド
Kohsuke Yuasa
 
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Kent Ohashi
 
CXL_説明_公開用.pdf
Yasunori Goto
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
cohama
 
Boost.勉強会 #21 札幌「C++1zにstring_viewが導入されてうれしいので紹介します」
Hiro H.
 
Effective Modern C++ 勉強会 Item 22
Keisuke Fukuda
 
react-scriptsはwebpackで何をしているのか
暁 三宅
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
 
Vimから見たemacs
Shougo
 
関数型プログラミング入門 with OCaml
Haruka Oikawa
 
どこに何を書くのか?
pospome
 
C++ マルチスレッドプログラミング
Kohsuke Yuasa
 
ゲーム開発者のための C++11/C++14
Ryo Suzuki
 
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
Tokoroten Nakayama
 
Linux Network Stack
Adrien Mahieux
 
組み込みでこそC++を使う10の理由
kikairoya
 
Gitの便利ワザ
ktateish
 
from Source to Binary: How GNU Toolchain Works
National Cheng Kung University
 

Similar to ClojurianからみたElixir (20)

PDF
Elixir @ Paris.rb
Gregoire Lejeune
 
PDF
ClojureScript: The Good Parts
Kent Ohashi
 
PDF
ClojureScript loves React, DomCode May 26 2015
Michiel Borkent
 
PDF
Introduction to Elixir
brien_wankel
 
KEY
Clojure Intro
thnetos
 
PDF
From Java To Clojure (English version)
Kent Ohashi
 
PDF
Pivorak Clojure by Dmytro Bignyak
Pivorak MeetUp
 
PDF
ECMAScript2015
qmmr
 
PDF
Introducción a Elixir
Svet Ivantchev
 
PDF
Pune Clojure Course Outline
Baishampayan Ghose
 
PPTX
Chp7_C++_Functions_Part1_Built-in functions.pptx
ssuser10ed71
 
PDF
PythonOOP
Veera Pendyala
 
PDF
What can be done with Java, but should better be done with Erlang (@pavlobaron)
Pavlo Baron
 
PDF
Elixir and OTP Apps introduction
Gonzalo Gabriel Jiménez Fuentes
 
PDF
ClojureScript for the web
Michiel Borkent
 
PDF
Exploring Clojurescript
Luke Donnet
 
PDF
Patterns 200711
ClarkTony
 
PDF
Coscup2021-rust-toturial
Wayne Tsai
 
PPTX
Javascript Basics
msemenistyi
 
PDF
Clojure 1.1 And Beyond
Mike Fogus
 
Elixir @ Paris.rb
Gregoire Lejeune
 
ClojureScript: The Good Parts
Kent Ohashi
 
ClojureScript loves React, DomCode May 26 2015
Michiel Borkent
 
Introduction to Elixir
brien_wankel
 
Clojure Intro
thnetos
 
From Java To Clojure (English version)
Kent Ohashi
 
Pivorak Clojure by Dmytro Bignyak
Pivorak MeetUp
 
ECMAScript2015
qmmr
 
Introducción a Elixir
Svet Ivantchev
 
Pune Clojure Course Outline
Baishampayan Ghose
 
Chp7_C++_Functions_Part1_Built-in functions.pptx
ssuser10ed71
 
PythonOOP
Veera Pendyala
 
What can be done with Java, but should better be done with Erlang (@pavlobaron)
Pavlo Baron
 
Elixir and OTP Apps introduction
Gonzalo Gabriel Jiménez Fuentes
 
ClojureScript for the web
Michiel Borkent
 
Exploring Clojurescript
Luke Donnet
 
Patterns 200711
ClarkTony
 
Coscup2021-rust-toturial
Wayne Tsai
 
Javascript Basics
msemenistyi
 
Clojure 1.1 And Beyond
Mike Fogus
 
Ad

More from Kent Ohashi (20)

PDF
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
Kent Ohashi
 
PDF
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
Kent Ohashi
 
PDF
From Scala/Clojure to Kotlin
Kent Ohashi
 
PDF
TDD with RDD: Clojure/LispのREPLで変わる開発体験
Kent Ohashi
 
PDF
🐬の推し本紹介2024: 『脱・日本語なまり 英語(+α)実践音声学』
Kent Ohashi
 
PDF
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
Kent Ohashi
 
PDF
map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう
Kent Ohashi
 
PDF
Kotlin Meets Data-Oriented Programming: Kotlinで実践する「データ指向プログラミング」
Kent Ohashi
 
PDF
RDBでのツリー表現入門2024
Kent Ohashi
 
PDF
ミュータビリティとイミュータビリティの狭間: 関数型言語使いから見たKotlinコレクション
Kent Ohashi
 
PDF
インターフェース定義言語から学ぶモダンなWeb API方式: REST, GraphQL, gRPC
Kent Ohashi
 
PDF
Team Geek Revisited
Kent Ohashi
 
PDF
Scala vs Clojure?: The Rise and Fall of Functional Languages in Opt Technologies
Kent Ohashi
 
PDF
Clojureコレクションで探るimmutableでpersistentな世界
Kent Ohashi
 
PDF
英語学習者のためのフランス語文法入門: フランス語完全理解(?)
Kent Ohashi
 
PDF
実用のための語源学入門
Kent Ohashi
 
PDF
メタプログラミング入門
Kent Ohashi
 
PDF
労働法の世界
Kent Ohashi
 
PDF
Clojureで作る"simple"なDSL
Kent Ohashi
 
PDF
RDBでのツリー表現入門
Kent Ohashi
 
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
Kent Ohashi
 
純LISPから考える関数型言語のプリミティブ: Clojure, Elixir, Haskell, Scala
Kent Ohashi
 
From Scala/Clojure to Kotlin
Kent Ohashi
 
TDD with RDD: Clojure/LispのREPLで変わる開発体験
Kent Ohashi
 
🐬の推し本紹介2024: 『脱・日本語なまり 英語(+α)実践音声学』
Kent Ohashi
 
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
Kent Ohashi
 
map関数の内部実装から探るJVM言語のコレクション: Scala, Kotlin, Clojureコレクションの基本的な設計を理解しよう
Kent Ohashi
 
Kotlin Meets Data-Oriented Programming: Kotlinで実践する「データ指向プログラミング」
Kent Ohashi
 
RDBでのツリー表現入門2024
Kent Ohashi
 
ミュータビリティとイミュータビリティの狭間: 関数型言語使いから見たKotlinコレクション
Kent Ohashi
 
インターフェース定義言語から学ぶモダンなWeb API方式: REST, GraphQL, gRPC
Kent Ohashi
 
Team Geek Revisited
Kent Ohashi
 
Scala vs Clojure?: The Rise and Fall of Functional Languages in Opt Technologies
Kent Ohashi
 
Clojureコレクションで探るimmutableでpersistentな世界
Kent Ohashi
 
英語学習者のためのフランス語文法入門: フランス語完全理解(?)
Kent Ohashi
 
実用のための語源学入門
Kent Ohashi
 
メタプログラミング入門
Kent Ohashi
 
労働法の世界
Kent Ohashi
 
Clojureで作る"simple"なDSL
Kent Ohashi
 
RDBでのツリー表現入門
Kent Ohashi
 
Ad

Recently uploaded (20)

PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
Add Background Images to Charts in IBM SPSS Statistics Version 31.pdf
Version 1 Analytics
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
PDF
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Customise Your Correlation Table in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Add Background Images to Charts in IBM SPSS Statistics Version 31.pdf
Version 1 Analytics
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
How to Hire AI Developers_ Step-by-Step Guide in 2025.pdf
DianApps Technologies
 
NEW-Viral>Wondershare Filmora 14.5.18.12900 Crack Free
sherryg1122g
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 

ClojurianからみたElixir