С документация :
Битовый оператор левого сдвига. Результатом является первый операнд с битами, сдвинутыми влево на количество бит во втором операнде. Биты, сдвинутые из старшей значащей позиции, не повернуты в младшую значащую позицию. Младшие значащие биты дополняются нулями. Тип второго аргумента - int32.
Прошло много времени с тех пор, как я использовал F #, но предполагая, что его префикс оператора работает так же, как Haskell, то, как вы его использовали:
4 |> ((<<<) 1uy)
будет применять 1 в качестве левого аргумента и 4 в качестве правого аргумента:
1 <<< 4
Что будет 16
.
Чтобы получить его равным 8
, попробуйте убрать круглые скобки вокруг самого оператора (то есть он не будет иметь префикс, а вместо этого будет лишь частично применен с правым аргументом), чтобы получить:
4 |> (<<< 1uy)
и это должно дать вам 8
, при условии, что это правильный синтаксис F #.