Как я могу распечатать полиморфные значения в Стандарте ML?

Так работает react-navigation, чтобы противостоять этому, вы можете добавить слушателей, например:

 { console.log(payload.state.params,'<- this has your new params') }}
/>

ИЛИ

 this.props.navigation.addListener('didFocus', payload=>{console.log(payload)})

Проверить [113 ] это для получения дополнительной информации

6
задан Community 23 May 2017 в 10:09
поделиться

2 ответа

Нет, нет никакого способа распечатать полиморфное значение. У Вас есть два варианта:

  • Специализируйте свою функцию к целым числам или строкам, которые с готовностью печатаются. Затем, когда ошибка убита, сделайте ее полиморфной снова.

  • Если ошибка проявляет только с некоторым другим инстанцированием, передачей show как дополнительный аргумент Вашей функции. Так, например, если Ваша полиморфная функция имеет тип

    'a list -> 'a list
    

    Вы расширяете тип до

    ('a -> string) -> 'a list -> 'a list
    

    Вы используете show внутренне распечатать, и затем путем неравнодушного применения функции к подходящему show, можно получить версию, которую можно использовать в исходном контексте.

    Это очень утомительно, но это действительно помогает. (Но быть предупрежденным: это может управлять Вами для попытки Haskell.)

8
ответ дан 16 December 2019 в 21:46
поделиться

Только в MOSML: Просто для отладки целей, используйте printVal функция. Обратите внимание, что эта функция только доступна в режиме верхнего уровня, она вызовет ошибку, когда Вы попытаетесь скомпилировать свою программу.

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

0
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

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