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

  • Autocar

    Autocar

    11 Mart 2006
  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • KendrickLamarVEVO

    KendrickLama

    9 ŞUBAT 2011