Neke funkcije u Mathematici na nas nacin

Bez koristenja vec definisanih kompleksnih funkcija,definisite svoje sopstvene verzije slijedecih  funkcija:

First[list]
Last[list]
Take[list, n]
Append[list, n]
Prepend[list, n]
Insert[list, n]
MemberQ[list, elem]
Length[list] (Bonus - savjet: Pogledajte HELP za "While")

Nakon sto rijesite problem, razmislite kako mozete poboljsati program - napraviti modul, specificirati lokalne varijable, rijesiti na neki nacin ekstremne ili pogresne situacije u programima itd...

mojFirst[lista_] := Module[{}, Return[lista[[1]]] ]

mojLast[lista_] := Module[{}, lista[[Length[lista]]] ]

mojTake[lista_, n_] := Module[{}, lista[[n]] ]

mojTake2[lista_, n_] := Module[{}, If[Length[lista] <n || n<1, Print["Argument veci od duzine liste ili manji od nule"], lista[[n]] ] ]

mojAppend[lista_, elem_] := Module[{i, ret, n}, n = Length[lista] ; ret = Tabl ... ]] = lista[[i]], {i, 1, n} ] ; ret[[n + 1]] = elem ; Return[ret] ]

mojPrepend[lista_, elem_] := Module[{lista1, n, i}, n = Length[lista] ; lista1 ... ta1[[i + 1]] = lista[[i]], {i, n} ] ; lista1[[1]] = elem ; lista1]

mojInsert[lista_, elem_, n_] := Module[{lista1, i, p}, p = Length[lista] ; If[ ... [[j + 1]] = lista[[j]], {j, n, p} ] ] ] ; Return[lista1] ]

mojMemberQ[lista_, elem_] := Module[{i}, Do[If[lista[[i]] elem, ᡝ ... 371;If[iLength[lista], Return[False]] ], {i, 1, Length[lista]} ] ]

mojLength[lista_] := Module[{ret}, ret = 0 ; Off[Part :: partw] ; Whil ... 8800;General :: partw, ret ++ ] ; On[Part :: partw] ; ret]

listica = {1, 2, 3, 4}

{1, 2, 3, 4}

mojFirst[listica]

1

mojLast[listica]

4

mojTake[listica, 2]

2

mojTake[listica, 5]

Part :: partw : Part 5 of {1, 2, 3, 4} does not exist. More…

{1, 2, 3, 4} 〚5〛

mojTake2[listica, 5]

Argument veci od duzine liste ili manji od nule

mojTake2[listica, -4]

Argument veci od duzine liste ili manji od nule

mojAppend[listica, 17]

{1, 2, 3, 4, 17}

mojPrepend[listica, 17]

{17, 1, 2, 3, 4}

mojInsert[listica, 17, 2]

{1, 17, 2, 3, 4}

mojInsert[listica, 17, 5]

{1, 2, 3, 4, 17}

mojInsert[listica, 17, 6]

Argument n nevalidan

lista1$68

mojMemberQ[listica, 3]

True

mojMemberQ[listica, 17]

False

mojLength[listica]

4

Napomena: ovo je najjednostavniji nacin koji je meni pao na pamet kako rijesiti error u Mathematici - probajte to rijesiti elegantnije!


Created by Mathematica  (November 7, 2007)