2012-08-29 12 views
5

Jest to coś, co czasami chciałbym zrobić. Powiedz, że mam listę argumentów. W Lisp, mogę iść jakRuby: jak połączyć tablicę w listę Lisp-style?

`(imaginary-function ,@args) 

w celu wywołania funkcji z tablicą od jednego elementu do odpowiedniej liczby argumentów.

Czy w Ruby jest podobna funkcjonalność? Czy po prostu używam tu całkowicie niewłaściwego idiomu?

+0

W Lispie, który nie jest ani wywołaniem funkcji, ani tablicą. To tylko lista z włączoną inną listą. –

Odpowiedz

9

Tak! Nazywa się to operatorem splat.

a = [1, 44] 
p(*a) 
+0

'puts (a)' i 'puts (* a)' mają to samo wyjście – Stefan

+0

Tak, nie jest to świetny przykład. Zmienię go na "p (* a)". –

+0

Doskonały, dokładnie tego właśnie szukałem. Wydaje się trochę dziwacznie składniowo, że używasz tego samego operatora do zbierania (* args) w funkcji, ale ma to sens mnemonicznie, jak sądzę. – HaskellMan

3

Jest to operator ikona: function(*list)

Powiązane problemy