Skip to content

Commit 634b02d

Browse files
committed
update repo
1 parent 625383f commit 634b02d

File tree

4 files changed

+85
-2
lines changed

4 files changed

+85
-2
lines changed

Readme.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
1-
# МОАИС 154м
2-
### Морозов Иван
1+
# МОАИС 154м
2+
### Морозов Иван
3+
4+
first - первое задание
5+
first_if - задание на if.. case..
6+
min - reduce и filter
7+
db - мини база данных на списках

db.erl

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-module(db).
2+
-export([new/0, put/3, delete/2,find/2,get/2]).
3+
4+
5+
%db:new()
6+
%db:put(K,V,DB)
7+
%db:delete(K,DB)
8+
%db:get(K,DB)
9+
%db:find(V,DB)
10+
11+
%Db = db:new().
12+
%Db1 = db:put(k1,v1,Db).
13+
14+
new()->[].
15+
16+
put(K,V,[]) -> [{K,V}];
17+
put(K,V,Db) -> [{K,V}|delete(K,Db)].
18+
19+
delete(K,Db) -> [{K1,V1}||{K1,V1} <- Db, K=/=K1].
20+
21+
get(K,Db) -> getValue([{K1,V1}||{K1,V1} <- Db, K==K1]).
22+
23+
getValue([]) -> {error, not_exists};
24+
getValue([{_,V}|_])->V.
25+
26+
find(V,Db) -> findeResult([{K1,V1}||{K1,V1} <- Db, V==V1]).
27+
findeResult([]) -> {error, not_finde};
28+
findeResult(L) -> [K1||{K1,_} <- L].

first_if.erl

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
-module(first_if).
2+
-export([hi/0, fact/1, fib/1, member/2, cost/1]).
3+
4+
hi() ->
5+
io:format("Hello!").
6+
7+
fact(N) ->
8+
if
9+
N == 0 -> 1;
10+
true -> N*fact(N-1)
11+
end.
12+
13+
fib(N) ->
14+
if
15+
N == 0 -> 0;
16+
N == 1 -> 1;
17+
true -> fib(N-1)+fib(N-2)
18+
end.
19+
20+
member(S,E) ->
21+
case S of
22+
[] -> false;
23+
[H|_] when H == E -> true;
24+
[_|T] -> member(T,E)
25+
end.
26+
27+
price(Item) ->
28+
case Item of
29+
apple -> 100;
30+
pear -> 150;
31+
milk -> 70;
32+
beef -> 400;
33+
pork -> 300
34+
end.
35+
36+
%[{apple, count}, ...]
37+
%cost(L)-> get summ
38+
cost(L) ->
39+
case L of
40+
[] -> 0;
41+
[{S,C}|T] -> price(S)*C+cost(T)
42+
end.

min.erl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
-module(min).
2+
-export([reduce/3,filter/2]).
3+
4+
reduce(_, Start, []) -> Start;
5+
reduce(F, Start,[H|T]) -> reduce(F,F(H,Start),T).
6+
7+
filter(_,[])->[];
8+
filter(P,L) -> [X || X <- L, P(X)].

0 commit comments

Comments
 (0)