diff --git a/references_and_values/pointers.jl b/references_and_values/pointers.jl
new file mode 100644
index 0000000000000000000000000000000000000000..2396128f08fdc11964547b9aaa2543b4ccd8666b
--- /dev/null
+++ b/references_and_values/pointers.jl
@@ -0,0 +1,117 @@
+triangle = [2, 3, 4]
+triangle2 = [2, 2, 2]
+triangle2_line = [2 2 2]
+
+
+triangle = triangle .+ 1
+triangle .+ triangle2
+triangle .* triangle2
+
+
+triangle2_line * triangle # mathematical vector multiplication
+triangle2 * triangle
+
+triangle2_line .* triangle
+
+
+
+triangle_bis = triangle
+triangle[1] = 0
+triangle_bis
+
+
+a = 5
+b = a
+a = 0
+b
+
+
+function is_Right(lengths)
+	for i=1:length(lengths)
+		lengths[i] = lengths[i]^2
+	end
+	println(lengths)
+	sort!(lengths)
+	# squares = sort(squares)
+	println(lengths)
+	return(lengths[3] == lengths[1] + lengths[2])
+end
+
+
+triangle = [5, 3, 4]
+println(is_Right(triangle))
+println(triangle)
+
+
+
+function is_Right2(lengths)
+	lengths = [x^2 for x in lengths]
+	println(lengths)
+	sort!(lengths)
+	# squares = sort(squares)
+	println(lengths)
+	return(lengths[3] == lengths[1] + lengths[2])
+	
+end
+
+triangle = [5, 3, 4]
+println(is_Right!(triangle))
+println(triangle)
+
+
+
+function temp(a)
+    a = [4,5,6]
+end
+function temp1(a)
+    a .= [4,5,6]
+end
+
+triangle = [2, 3, 4]
+temp(triangle)
+triangle
+
+temp1(triangle)
+
+
+function is_Right2Bis(lengths)
+	lengths .= [x^2 for x in lengths]
+	println(lengths)
+	sort!(lengths)
+	# squares = sort(squares)
+	println(lengths)
+	return(lengths[3] == lengths[1] + lengths[2])
+	
+end
+
+triangle = [5, 3, 4]
+println(is_Right!(triangle))
+println(triangle)
+
+
+
+
+
+
+function recursive_factorial(n)
+	if n == 1
+		return(1)
+	else
+		return(n*recursive_factorial(n-1))
+	end
+end
+
+recursive_factorial(12)
+
+function loop_factorial(n)
+	res = 1
+	for i in 1:n
+		res = res*i
+	end
+	return(res)
+end
+loop_factorial(12)
+
+
+ @elapsed recursive_factorial(4200)
+ @elapsed loop_factorial(4200)
\ No newline at end of file