Przekazanie do funkcji wyniku innej funckji

0

Hi, męczę się trochę z Scheme. Mam funkcję obliczającą silnię:

(define (silnia x)
  (if (zero? x)
      1
      (* x (silnia(- x 1)))))

oraz funkcję, która mnoży liczbę. Chciałbym bezpośrednio przekazać do drugiej funkcji wynik pierwszej tj. coś na wzór tego pseudokod:

(silnia2(silnia(5)))

Jak to zapisać w scheme?
Będę wdzięczny za pomoc.

0

Studenci próbujący zaliczyć Scheme, zaraza...

szasza napisał(a)

Chciałbym bezpośrednio przekazać do drugiej funkcji wynik pierwszej tj. coś na wzór tego pseudokod:

(silnia2(silnia(5)))


Przecież już to zrobiłeś wyżej:

 > ##### szasza napisał(a)
> 
```lisp
(* x (silnia(- x 1)))

Nie przekazujesz wyniku funkcji - do funkcji silnia i wyniku silnia do *? Kod to lista wyrażeń, głowę stanowi funkcja lub forma specjalna, ogon argumenty, sam sobie odpowiedz, czy nawiasy wokół 5 są potrzebne.

0

Hi, dziękuję za odpowiedz. Tak się składa, że programowania funkcyjnego jeszcze nie mieliśmy.
Rzeczywiście głupi błąd - nagle wypadło mi z głowy jak się wywołuje funkcję i przekazuje doń argumenty.
Szukam w Internecie materiałów o Scheme i nic konkretnego nie znalazłem. Znasz może jakieś strony lub tytuły, które opisują chociaż podstawy Scheme?

Pozdrawiam

0
szasza napisał(a)

Szukam w Internecie materiałów o Scheme i nic konkretnego nie znalazłem. Znasz może jakieś strony lub tytuły, które opisują chociaż podstawy Scheme?

Druga z najlepszych książek o Scheme jest w wersji online na dalekim miejscu wyników wyszukiwania dla "Scheme book", mianowicie na pierwszym. Najlepsza to <url=www-mitpress.mit.edu/sicp/full-text/book/book.html>Structure and Interpretation of Computer Programs</url> chociaż skupia się nie tyle na Scheme co na prawdziwym programowaniu, budowaniu kolejnych poziomów abstrakcji itd.

0

Link do SICP nie zrobił się klikalny - http://www-mitpress.mit.edu/sicp/full-text/book/book.html

0

Hi, bardzo dziękuję za pomoc. Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1