middle[li_List] := Part[li, Union@Through[{Floor, Ceiling}[(Length@li + 1)/2]]]
middle[li_List] := Part[li, Union@Through[{Floor, Ceiling}[(Length@li + 1)/2]]]
I wouldn't do it this way, but just for fun:
mid[li_List] := li[[Nearest[Range[len = Length@li], (len + 1)/2]]]
mid[li_List] := With[{len = Length@li}, li[[Nearest[Range[len], (len + 1)/2]]]]