纯红代码如何正确使用Red/System方言?

How to properly use the Red/System dialect from the pure Red code?

我正在使用绑定到 Red/System 的 curses 编写一个简单的教程应用程序。按照 "curses-example.reds" 中所示的方式进行操作效果很好。但是我怎样才能从纯红色代码使用这个绑定呢?我是不是把整个方法弄错了,我真的必须留在 Red/System 方言的范围内吗?

代码尽可能简单:

Red/System [
    File:    "%test.reds"
]

#include %curses/curses.reds

with curses [
    initscr
    getch
    endwin
]

如何正确地在 Red/System 和 Red 之间进行双向日期交换? 我对 this 问题的回答不是很好。

首先让你的代码不是红码Red/System。接下来尝试尽可能接近 red-lang.org 站点上博客中的示例。 你需要寻找规律。

我想特别感谢投票否决我的回答的人。

目前,要使用来自 Red 程序的 Red/System 代码,您需要使用例程! - http://www.red-lang.org/search/label/routine

目前只有整数!和逻辑!值可以在 Red 和 Red/System 之间透明传递。必须在例程内转换其他数据类型才能使用。

例如,如果你有一个字符串!数据类型作为例程的参数,Red 会将数据作为红色字符串传递给例程!结构:

red-string!: alias struct! [
    header  [integer!]          ;-- cell header
    head    [integer!]          ;-- string's head index (zero-based)
    node    [node!]             ;-- series node pointer
    cache   [c-string!]         ;-- (experimental)
]

它需要转换为 Red/System C 字符串!在您可以在例程中使用它之前。同时,您必须照顾到 Red string!s 和 Red/System c-string!s 之间的编码差异。一根红绳!可能是 ISO-8559-1、UCS-2 或 UTF-32 编码。

如果你想return一个字符串,你必须迎合相反的方向!从例程到红色程序。

其他数据类型需要以类似的方式处理。

我相信将来在 Red 和 Red/System 之间传递值会变得非常非常容易。但是,在 Red 达到 1.0 版之前,我个人并不希望如此。