Гарантирует ли Scala согласованность при наличии последствий?

Это хорошо работает для меня:

from matplotlib import pyplot as plt
F = gcf()
Size = F.get_size_inches()
F.set_size_inches(Size[0]*2, Size[1]*2, forward=True)#Set forward to True to resize window along with plot in figure.
plt.show() #or plt.imshow(z_array) if using an animation, where z_array is a matrix or numpy array

Это также может помочь: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html

3
задан theindigamer 2 March 2019 в 03:46
поделиться

1 ответ

Я думаю, что они имеют в виду одно и то же. Согласованность ставится под сомнение только тогда, когда у вас есть несколько способов получения значения экземпляра / неявного значения; «каждый другой действительный типизированный производный» интересен только тогда, когда является более чем один раз типизирующим производным. И Scala, и Haskell не разрешают создавать экземпляры во время компиляции, что может привести к неоднозначным выводам.

Scala

Комментарий Одерского гласит это для Scala: существует только один локальный способ разрешения экземпляров. Другими словами, существует только один действительный вывод локальной типизации. Достаточно тривиально, это согласуется с самим собой. Мне не ясно, что даже имеет смысл говорить о глобальной согласованности в Scala, но, если это так, у Scala определенно нет этого:

object Object1 {
  implicit val i: Int  = 9
  println(implicitly[Int])    // valid typing derivation of `Int` => printing 9
}
object Object2 {
  implicit val i: Int  = 10
  println(implicitly[Int])    // valid typing derivation of `Int` => printing 10
}

Haskell

Поскольку экземпляры Haskell являются глобальными, нет смысла различать локальную / глобальную согласованность.

Хаскелл запрещает во время компиляции иметь два экземпляра, где один из них совпадает с другим. Это превращает поиск производных типов в однозначную задачу поиска без обратной проверки. Не двусмысленность - это то, что дает нам согласованность.

Интересно, что GHC позволяет вам ослабить это требование с помощью -XIncoherentInstances, позволяющего записывать локально не смежные экземпляры, что также может нарушить глобальную согласованность.

0
ответ дан Alec 2 March 2019 в 03:46
поделиться
Другие вопросы по тегам:

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