оператор if после математической операции Синтаксическая ошибка в OCaml

Я бы сказал, чтобы просто захватить базовый RDD. В Scala:

df.rdd.isEmpty

в Python:

df.rdd.isEmpty()

Говоря все это, это вызов take(1).length, поэтому он будет делать то же, что ответил Рохан ... возможно, немного более явным?

0
задан Shon Feder 16 January 2019 в 01:31
поделиться

1 ответ

Я подозреваю, что вы думаете о x = x *. 2.0 как об утверждении, которое меняет значение x. Но в OCaml значение переменной не может быть изменено.

В выражениях OCaml = - оператор сравнения на равенство. Так что x = x *. 2.0 является логическим выражением. То есть, это либо правда, либо ложь.

Поскольку вы не хотите, чтобы два выражения следовали друг за другом, подробности синтаксической ошибки, вероятно, бесполезны.

Хотя вы не можете изменить значение переменной, вы можете иметь любое количество локальных переменных, которые вам нравятся. Способ объявления локальной переменной выглядит следующим образом:

let my_local_variable = expression1 in expression2

Чтобы получить эффект, который вы смотрите далеко (я думаю), вы можете написать что-то вроде этого:

let idk (x: float) =
   let local_x = x *. 2.0 in
   if (local_x > 0.0) then true else false
0
ответ дан Jeffrey Scofield 16 January 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: