# [Haskell-beginners] Homework help - calculator function

Jakub Oboza jakub.oboza at gmail.com
Wed Jun 22 23:42:51 CEST 2011

```Hi

Basicly this tutorial explains all things related to your question

http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours

Also book Structure And Interpretation of Computer Programs shows some related stuff. Hope this will help you a bit.

Kind regards Kuba

Wiadomość napisana przez SM Design w dniu 2011-06-22, o godz. 21:38:

>  I have a homework which is very important to be done but I can't complete the task at all. The program i should write is:
>
> The function argument is a list of strings and also form such list, as each string of the argument made definite action.
> • If the string has the form of an arithmetic expression - calculate this expression. The string result becomes part of the list-result. If the expression contains a variable which is not assigned value, the result is displayed "undefined".
> • If the string has the form
> Name =
> value calculated from the last expression is assigned to the variable with the corresponding name in the list, and in the result list is formed a string with type
> name = ...
> where the site stands blank corresponding value.
> If there is not a calculated expression to be assigned to form a string "no value".
> • If the string is non-blank, but there is a species different from the above two case, form the string "error".
> • If the string is empty, incl. when it contains only spaces, in the result there is not form a string.
> Expressions consist of integers without sign variables, operations + (Addition), - (subtraction), * (multiplication) and / (divide) and parentheses. Where no brackets, the operations are performed from left to right, but * and / precede the + and -. Implementation of any operation gives integer; in the division rejected the fractional part, if any.
> Variables have names of one letter - from the Latin small letter. In the beginning, end or between the elements of each row can have spaces - they are irrelevant to its correctness.
> Example: the list-argument
> ["3 +7 / 2" "2 + x", "= s", "2 * s +4", "", "2 + +4 / 5]
> function should provide a result-list
> ["6", "undefined", "s = 6", "16", "error"].
>
>