![]() |
【转帖】风子
风子
(646316691) 15:25:13 请冷血儿colder介绍f# 冷血儿colder (23450533) 15:25:29 [自定义表情] 独孤雪 (66781042) 15:25:38 还是出书吧 冷血儿colder (23450533) 15:25:49 [自定义表情] 独孤雪 (66781042) 15:26:16 我先定一本 独孤雪 (66781042) 15:26:38 哪位老大能解决我的表格控件不能使用的问题 冷血儿colder (23450533) 15:26:58 >我还是先把我自己翻译的文章再看一遍吧 光顾着翻译了 代码还没来得及研究 冷血儿colder (23450533) 15:31:01 >to:风子 f#的最大特点就是简洁! 独孤雪 (66781042) 15:31:44 是简洁还是简单 冷血儿colder (23450533) 15:31:52 >简洁 不简单 独孤雪 (66781042) 15:32:20 这然话怎么这么熟悉啊 冷血儿colder (23450533) 15:32:32 >kean说f#的代码在解决某些问题时 出奇的简洁 但这并不代表f#很容易学习 独孤雪 (66781042) 15:32:49 好像是一句广告词 四百多 (24390424) 15:33:18 简约而不简单? 冷血儿colder (23450533) 15:33:27 >我出个题目 遍历模型空间和图纸空间中所有mtext对象 取出文字 用空格断开 再把得到的得有单词排序 每个单词一行 输出到cad命令行上 冷血儿colder (23450533) 15:33:59 >你估计这个程序 代码要多少行? 四百多 (24390424) 15:34:01 有实际作用么 冷血儿colder (23450533) 15:34:17 >不需动手操作 只是估计下 会有多少行代码 四百多 (24390424) 15:34:43 我觉得400 冷血儿colder (23450533) 15:34:48 ... 四百多 (24390424) 15:35:04 四百多 冷血儿colder (23450533) 15:35:05 >不愧为"四百多"啊 冷血儿colder (23450533) 15:35:18 >用c#写 应该不用那么多吧? 四百多 (24390424) 15:35:34 过程的化会少点吧 四百多 (24390424) 15:35:50 100 晨昕 (110849933) 15:35:51 用不到 四百多 (24390424) 15:35:53 多? 四百多 (24390424) 15:36:24 过滤,30 冷血儿colder (23450533) 15:37:23 >假设有3个mtext对象 xyz 1234 how are you? >要求结果是: 1234 are how xyz you? 冷血儿colder (23450533) 15:38:06 >我想知道用c#写 保守的估计会有多少行 然后我再展示下f#代码 这样就说明f#的简洁了! 四百多 (24390424) 15:38:25 有意思呢。 四百多 (24390424) 15:39:29 每个单词也要排? 冷血儿colder (23450533) 15:41:08 >是的 要用空格拆分 四百多 (24390424) 15:41:44 那一共怎么也要150 四百多 (24390424) 15:42:21 要自己写排序撒 冷血儿colder (23450533) 15:42:45 >怎么都行 借用.net的能力 越省代码越好 四百多 (24390424) 15:43:21 恩 冷血儿colder (23450533) 15:43:29 >前期的一些变量 doc bt ms ps 这些不说了 大家都一样 冷血儿colder (23450533) 15:44:55 >我说下kean写的代码 三个用于调用的函数 extracttext用于提取mtext的内容 5行 printlist用于输出字符串数组 4行 words用于以空格拆分字符串 1行 最后的主程序 1行 四百多 (24390424) 15:45:33 哇,函数里面不要代码啊? 冷血儿colder (23450533) 15:46:12 let extracttext (x : objectid) = let obj = tr.getobject(x, openmode.forread) match obj with | :? mtext -> [(obj :?> mtext).contents] | _ -> [] >这是提取文字内容的函数 参数是cad里的对象 是mtext就取内容 不是拉倒 冷血儿colder (23450533) 15:46:51 let rec printlist x = match x with | h :: t -> ed.writemessage("\n" + h); printlist t | [] -> ed.writemessage("\n") >这是输出字符串表的递归函数 输出完为止 冷血儿colder (23450533) 15:47:26 let words = string.split [' '] >这是拆分字符串的函数 f#核心库自带的 四百多 (24390424) 15:47:46 。net也有 冷血儿colder (23450533) 15:48:33 seq.untyped_to_list ms @ seq.untyped_to_list ps |> list.map extracttext |> list.flatten |> list.map words |> list.flatten |> set.of_list |> set.to_list |> printlist >这是超变态的cad命令主程序 按f#语法规则 算一行 四百多 (24390424) 15:48:52 看不懂 冷血儿colder (23450533) 15:50:30 seq.untyped_to_list ms @ seq.untyped_to_list ps >遍历ms(模型空间)所有对象 返回表 再加上ps的 遍历结果中的每一项 使用extracttext处理 返回的二维表压平成一维表 再用words函数遍历 再压平 然后排序 最后输出 四百多 (24390424) 16:12:24 写了一下,35行。 四百多 (24390424) 16:39:29 25 指南针 (410737612) 20:28:47 有做过autodesk map导出shp格式的吗? c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。 全部连在一起,有点乱! |
所有的时间均为北京时间。 现在的时间是 11:44 AM. |