Skip to content

Особенности (или баги?) с receive, send и вопрос про короткий вариант if/else #60

Description

@ZakarumXiZ

Я столкнулся с еще несколькими особенностями (а некоторые вполне могут быть багами) в Pr:

  1. если написать что-то вроде a[i]:=a[i]+receive(i), то будет выдавать ошибку can only assign with receive, а если записать это во вроде бы эквивалентном виде a[i]+=receive(i), то ошибка не появляется. Т.е., если писать только := или только +=, то ничего такого, а если одновременно := и +, то выдает ошибку, даже если это эквивалентная запись для +=. Возможно, это является защитой от случая, если бы слева или справа было бы, например a[i-1] или a[i+1] (и если заменить так ровно с одной из сторон), но меня смущает, что интерпретатор ругается на другой вид записи +=, или, может быть, именно так и было задумано?

  2. И еще - мне кажется, что в описании языка стоит явно указать, что через send можно передавать массивы лишь поэлементно, через циклы, а напрямую - нельзя; или не стоит? Вроде, в описании указано, что можно несколько чисел за один вызов, но в условии явно не написано, что количество передаваемых переменных должно быть равным количеству аргументов минус 1.

  3. И я не совсем понимаю, а какая именно короткая версия if/else должна работать, вроде в языке можно только через отступы? Если это про версию, где идет присваивание, и оно идет перед if/else в одной строке (почти как в Python), то у меня это не работает, но, видимо, в документации имелось в виду другое

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions