@@ -75,8 +75,6 @@ def product(item):
7575
7676
7777def Negate (item ):
78- if isinstance (item , int ) or isinstance (item , float ) or isinstance (item , Number ):
79- return - item
8078 if isinstance (item , Expression ):
8179 item = item .run ()
8280 if isinstance (item , String ):
@@ -87,11 +85,10 @@ def Negate(item):
8785 if item and isinstance (item [0 ], Expression ):
8886 item = iter_apply (item , lambda o : o .run ())
8987 return iter_apply (item , Negate )
88+ return - item
9089
9190
9291def Abs (item ):
93- if isinstance (item , int ) or isinstance (item , float ):
94- return abs (item )
9592 if isinstance (item , Expression ):
9693 item = item .run ()
9794 if isinstance (item , String ):
@@ -102,6 +99,7 @@ def Abs(item):
10299 if item and isinstance (item [0 ], Expression ):
103100 item = iter_apply (item , lambda o : o .run ())
104101 return iter_apply (item , Abs )
102+ return abs (item )
105103
106104
107105def Sum (item ):
@@ -216,12 +214,11 @@ def Incremented(item):
216214 item = str (item )
217215 if isinstance (item , str ):
218216 item = float (item ) if "." in item else int (item )
219- if isinstance (item , float ) or isinstance (item , int ):
220- return item + 1
221217 if hasattr (item , "__iter__" ):
222218 if item and isinstance (item [0 ], Expression ):
223219 item = iter_apply (item , lambda o : o .run ())
224220 return iter_apply (item , Incremented )
221+ return item + 1
225222
226223
227224def Decremented (item ):
@@ -231,12 +228,11 @@ def Decremented(item):
231228 item = str (item )
232229 if isinstance (item , str ):
233230 item = float (item ) if "." in item else int (item )
234- if isinstance (item , float ) or isinstance (item , int ):
235- return item - 1
236231 if hasattr (item , "__iter__" ):
237232 if item and isinstance (item [0 ], Expression ):
238233 item = iter_apply (item , lambda o : o .run ())
239234 return iter_apply (item , Decremented )
235+ return item - 1
240236
241237
242238def Doubled (item ):
@@ -246,12 +242,11 @@ def Doubled(item):
246242 item = str (item )
247243 if isinstance (item , str ):
248244 item = float (item ) if "." in item else int (item )
249- if isinstance (item , float ) or isinstance (item , int ):
250- return item * 2
251245 if hasattr (item , "__iter__" ):
252246 if item and isinstance (item [0 ], Expression ):
253247 item = iter_apply (item , lambda o : o .run ())
254248 return iter_apply (item , Doubled )
249+ return item * 2
255250
256251
257252def Halved (item ):
@@ -261,12 +256,11 @@ def Halved(item):
261256 item = str (item )
262257 if isinstance (item , str ):
263258 item = float (item ) if "." in item else int (item )
264- if isinstance (item , float ) or isinstance (item , int ):
265- return item / 2 if item % 2 else item // 2
266259 if hasattr (item , "__iter__" ):
267260 if item and isinstance (item [0 ], Expression ):
268261 item = iter_apply (item , lambda o : o .run ())
269262 return iter_apply (item , Halved )
263+ return item / 2 if item % 2 else item // 2
270264
271265
272266def SquareRoot (item ):
@@ -276,12 +270,11 @@ def SquareRoot(item):
276270 item = str (item )
277271 if isinstance (item , str ):
278272 item = float (item )
279- if isinstance (item , float ) or isinstance (item , int ):
280- return item ** 0.5
281273 if hasattr (item , "__iter__" ):
282274 if item and isinstance (item [0 ], Expression ):
283275 item = iter_apply (item , lambda o : o .run ())
284276 return iter_apply (item , SquareRoot )
277+ return item ** 0.5
285278
286279
287280def Lower (item ):
@@ -300,33 +293,31 @@ def Lower(item):
300293
301294
302295def Min (item ):
303- if isinstance (item , int ) or isinstance (item , float ):
304- return floor (item )
305296 if isinstance (item , Expression ):
306297 item = item .run ()
307298 if isinstance (item , String ):
308299 item = str (item )
309300 if isinstance (item , str ):
310301 return item and min (item )
311- if hasattr (item , "__iter__" ) and item :
312- if isinstance (item [0 ], Expression ):
302+ if hasattr (item , "__iter__" ):
303+ if item and isinstance (item [0 ], Expression ):
313304 item = iter_apply (item , lambda o : o .run ())
314- return min (item )
305+ return min (item ) if item else None
306+ return floor (item )
315307
316308
317309def Max (item ):
318- if isinstance (item , int ) or isinstance (item , float ):
319- return ceil (item )
320310 if isinstance (item , Expression ):
321311 item = item .run ()
322312 if isinstance (item , String ):
323313 item = str (item )
324314 if isinstance (item , str ):
325315 return item and max (item )
326- if hasattr (item , "__iter__" ) and item :
327- if isinstance (item [0 ], Expression ):
316+ if hasattr (item , "__iter__" ):
317+ if item and isinstance (item [0 ], Expression ):
328318 item = iter_apply (item , lambda o : o .run ())
329- return max (item )
319+ return max (item ) if item else None
320+ return ceil (item )
330321
331322
332323def Upper (item ):
0 commit comments