LINUX.ORG.RU

python «паскаль современности» со всеми + и -

 


0

0

пусть есть список l=[t0,t1,.....,tн] гдн н+1=len(l) и ti - кортеж и кортежи равной длины

при любом len(ti): [ F(t) for t in l if ...]

при len(ti)==L>1 не теряя общьности пусть L==2 возможна запись [ F(a,b) for а,b in l if ...]

синтаксис улучшен для пользователя как следстиве неразличимо при одноэлиментном кортеже - мы обращаемся к элементу списка или к единственному элементу кортежа (питон парсит как обращение к элементу списка)

т.е нехватает скобок в клаузе for что бы различать случай L==1 и обращение к элементу списка как к целому и к полю элемента списка

for Lскобка а Rскобка in l

for t in l

т.е насколько намерено специальные случаи синтаксиса способствуют успеху среди пользователей и «услjжняют» парсер специальными случаями

какие ещё в питоне есть специальные случае в которых пошли на намереное уменьшение общьности правил?

★★☆
Ответ на: комментарий от Deleted

с историю покури:

Паскаль это переименованый(и чутка рефайненый) отвергнутое(комитетом WG2.1) предложение Вирта(одобренное Хоаром) ALGOL ( 65 года) известный под именем ALGOL W - практический язык 60-х

qulinxao ★★☆
() автор топика
Ответ на: комментарий от aptyp

гугли нацкель . что то с композицией функций @ «гугль знает»

qulinxao ★★☆
() автор топика
Ответ на: комментарий от buddhist

С каких пор lisp comprehensions — ФП? :) ФП — это «@» и "."

Просто чаще всего list comprehension встречается там: Haskell, F#, Scala, Common Lisp (аж два способа с loop и iter через collect). Вот я рассудил, но могу быть не прав :)

И ваще, синтаксис do родом из list comprehension. Похожее можно сказать про вычислительные выражения F#. Они являются обобщением list, array и sequence expressions.

dave ★★★★★
()
Ответ на: комментарий от buddhist

@ - декоратор. Это композиция. А что такое «применение»? Последовательность методов?

aedeph_ ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.