SORU
3 Kasım 2012, CUMARTESİ


Anonim işlev steno

Anonim işlevler kısa gösterim kullanarak ilgili anlamadığım bir şey var #(..)

Aşağıdaki çalışır:

REPL>  ((fn [s] s) "Eh")
"Eh"

Ama bu değil:

REPL>  (#(%) "Eh")

Bu gibi çalışır:

REPL> (#(str %) "Eh")
"Eh"

Anlamadığım şey neden olur(#( % ) "") Haçalışmıyor ve aynı anda kullanmaya gerek yokstr((fn [s] s) "") Ha

Anonim işlevler hem onlar, burada, bir parametre alır. Neden steno gösterimini diğer gösterimde olmasa da bir işlevi var?

CEVAP
3 Kasım 2012, CUMARTESİ


#(...)

steno için

(fn [arg1 arg2 ...] (...))

(argN sayısı vücutta var kaç %N bağlı). Yazarken:

#(%)

tercüme:

(fn [arg1] (arg1))

Bunun gibi olan ilk anonim fonksiyon, farklı olduğuna dikkat edin:

(fn [arg1] arg1)

Sürüm değeri döndürür arg1, kestirme bir fonksiyon olarak çağırmak çalışır genişleyen gelen sürüm. Bir dize geçerli bir fonksiyon değildir, çünkü bir hata alıyorum.

Kestirme vücut etrafında parantez kümesi sağladığı için, sadece tek bir işlev çağrısı ya da özel bir form çalıştırmak için kullanılabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • New Scientist

    New Scientis

    27 Kasım 2006
  • Pepsi

    Pepsi

    1 Kasım 2005
  • VJ VIMANA

    VJ VIMANA

    3 Mayıs 2007