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

  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007
  • EEVblog2

    EEVblog2

    2 HAZİRAN 2014
  • kidrauhl

    kidrauhl

    15 Ocak 2007