2009-08-08 16 views
14

Wolfram Research, en azından son 8 yıldır bu işlev için aynı belgelere etti dinlenmeye nihayet bu koymak gerekiyor bu, yayınlarda görünür.semantik, birisi

Şimdiye kadar gördüğüm güzel bir dairesel tanım.

Gerçek anlambilimin ne olduğunu ve dairesel olmayan uygun bir açıklama sağlayabildiğini bilen var mı?

cevap

11

İş parçacığı, diğer işlevsel dillerden bir genelleştirme zip gibidir. belgelerinde ilk çift örneklerde gösterildiği gibi örnekten args tüm elemanları liste olan basit durumlar için

,

Thread[f[args]] 

f @@@ Transpose[{args}] 

eşdeğerdir. En büyük kırışıklık, listelerin bulunmadığı bir yayınız olduğunda, bu durumda etkin bir şekilde küflendikleri; örneğin,

Thread[g[{a, b}, c, {d, e}, f]] 

g[#1, c, #2, f]& @@@ Transpose[{{a, b}, {d, e}}] 

Ben genellikle kuralları veya denklemlerin listelerinin listelerini oluşturmak Konu kullanarak kendimi bulmak eşdeğerdir.

14

Python'un zip() işlevine benzer şekilde çalışır, ancak biraz daha genel bir şekilde çalışır. Örneğin:

In[1] := Thread[{{1, 2, 3}, {4, 5, 6}}] (* f == List *) 
Out[1] = {{1, 4}, {2, 5}, {3, 6}} 

In[2] := Thread[f[{1, 2, 3}, {4, 5, 6}]] 
Out[2] = {f[1, 4], f[2, 5], f[3, 6]} 

In[3] := Thread[f[a+b+c, d+e+f], Plus] 
Out[3] = f[a, d] + f[b, e] + f[c, f]